sbright33:
I'm not suggesting we change any hardware. I'm talking about calibrating it in the code.
You're talking about 10%.
I'm talking about 10ppm.
We're not even in the same ballpark.
I have proven it works for my applications nearly 1ppm.
From Atmel I learned that uncalibrated internal clock accuracy in shipped chips has a tolerance of something like 10% but can be calibrated to within 1%. Add to that that Arduino boards don't run on the chips internal clocks. The 10%/1% applies to what standalone chips can supply.
And the millis() counter not being updated while interrupts are disabled (like during IRQs) is something I got (shown in docs) from Arduino. Why do you suppose that is?
Neither says you can't engineer around them. Step one: identify a need. Step two: indentify and quantize the parts. Etc till all the troubles are shot and it's done or proves impossible.
Please don't think that parts of step 2 are a statement that the task is impossible.
And again, the easy way that should be good is to use an RTC.