I'm still very new to Arduino, but I am already working on a project. The problem I've encountered is that I need to count down the time precisely (down to milliseconds) while controlling some external hardware, like servos. Is it achievable with the bulit-in clock or do I need to mount a separate RTC?
You haven't really given enough information to tell. Put some numbers on your timing requirements. The word "precisely" is useless without a number to tell the precision expected. Do you want 1ms over a 10 hour measurement (0.028ppm)? Or 1 ms over a 1 second measurement (1000ppm)?
1 millisecond in 5 minutes is 3 parts per million accuracy.
If you plan on timing to milliseconds, an RTC probably won't be useful, because the commonly available ones keep time in seconds. If you are timing in seconds, then the DS3231 is good to 3.5 PPM. The DS1307 is not.
It would be much easier to use an Arduino with an accurate crystal (3 PPM or better), but you may have a hard time finding one.
Delta_G:
Here's an RTC with millisecond resolution. The fact that most Arduino users don't have the need is hardly any indication that it doesn't exist.
I'm still very new to Arduino, but I am already working on a project. The problem I've encountered is that I need to count down the time precisely (down to milliseconds) while controlling some external hardware, like servos. Is it achievable with the bulit-in clock or do I need to mount a separate RTC?
Filip
What exactly is your project intended to accomplish?
You could use an RTC to keep time down to seconds, then time each second using Arduino's millis() or micros() function. The duration will only be 1 second, so the drift will be minimal (typically <1ms.)