我需要处理一个计数器,让我给我的应用程序打勾.柜台是32位,所以我需要知道的是如何处理它,当它包装.例如:
我有一个函数返回(时间戳移位时间),我有另一个函数将返回1或0,这取决于时间是否已经过去,但是我的计数器可能会包装如何处理这个?
谢谢
非常感谢所有的回应者们.我将在这个编辑中给出更多的细节.
我正在使用STM32 Cortex-M3.我想使用RTC计数器将其用作我的应用程序的刻度来计划需要在特定间隔发生的任务. RTC可以产生溢出中断,因此检测中断不是问题.我有(或至少我认为是一个问题)的主要问题是某些任务获得(时间戳移位)即是.
int main( void ) { FlashLedTimeStamp = ReturnCounter( 20 ); // currentcounter value + a shift of 20 StatusLedTimeStamp = ReturnCounter( 3 ); // currentcounter value + a shift of 3 //then later on .... while(1) { /* other tasks could go here */ if( HasTimeElapsed( FlashLedTimeStamp ); { /* do something and get another timestamp value */ FlashLedTimeStamp = ReturnCounter( 20 ); // currentcounter value + a shift of 20 } if( HasTimeElapsed( StatusLedTimeStamp ); { /* do something and get another timestamp value */ FlashLedTimeStamp = StatusLedTimeStamp( 3 ); // currentcounter value + a shift of 3 } } }
假设我的RTC计数器只有8位长,使数学变得容易.
如果我的当前计数器是250,当我收到我的时间戳,这意味着FlashLedTimeStamp = 14和StatusLedTimeStamp = 253我将如何检查看到FlashLedTimeStamp已过期?
请记住,我不一定要检查所有的时间,看看当前的计数器是什么,以及某些时间戳是否已经过期.我希望这清楚地说明了我所遇到的问题是感谢所有的进步.