Quote:
Originally Posted by viralpatel
If i set the sysClkRateSet to 1000 for accuracy of 1ms, minute of the system clock is changing before 60 sec.
Ex. after 15 second my time change from 1 minute to 2 minute.
|
When you use sysClkRateSet, you need to call sysClkRateGet to verify the rate you asked for was actually achieved.
And even if sysClkRateGet returns the same number you passed to sysClkRateSet, it doesn't necessarily mean the underlying system tick interrupt is actually occurring every 1ms.
In this case, I'm going to assume you really did manage to get system tick interrupts going at 1000Hz.
Here's just 2 reasons why you don't want to do this.
1) there is an enormous processing overhead associated with interrupts. a system that must handle a timer interrupt every 1ms may be able to do little else.
2) when you change the system tick rate, there is no mechanism in vxWorks to notify the application of the change. if some code (not your code) called sysClkRateGet before the change and stored the returned value for subsequent use (assuming it would never change), that code will now have an invalid notion of system tick frequency and elapsed time.
Finally, it's difficult for me to reconcile the apparent dichotomy of someone who doesn't know vxWorks very well feeling the need to drive a realtime system at 1000Hz..
Edit: Sorry, I should have pointed the OP to the fact that his question belongs on a FRC programming forum.