This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/LAUNCHXL-CC1310:Clock_getTicks()溢出处理

Guru**** 2595800 points
Other Parts Discussed in Thread: SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/586627/rtos-launchxl-cc1310-clock_getticks-overflow-handling

器件型号:LAUNCHXL-CC1310
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

你(们)好。

我´m 构建一个时钟函数来执行两项操作:建立10秒周期(我的任务在执行后将睡眠这么多)并创建一个日期和实时时钟(小时、分钟、秒和毫秒)。 我使用 Clock_getTicks()来生成10秒周期计数器。 1小时11分钟后问题溢出、时钟不再工作。 有人可以帮助我处理此溢出吗? 我的时钟代码段

uint32_t adcMyan、absTime、absTimeOld、absPeriod、absPeriodSec;

unsigned int period = 10;

void clkFxn (void){

static unsigned int firsttime = 0;
absTimeOld = absTime;
absTime = Clock_getTicks()*Clock_tickPeriod/1000;
absPeriod = absTime - absTimeOld;
if (absTime < absTimeOld){
absTime = 0;
absTimeOld = 0;
absPeriod = 10000;

absPeriodSec =absPeriod/(Period*100);

if (absPeriodSec <周期){
relogio.msec = relogio.msec +(absPeriod -(period-1)*1000);

否则{
relogio.msec = relogio.msec +(absPeriod - period*1000);

之后、只需从毫秒转换为秒、从秒转换为分钟、以此类推。  

谢谢!



 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否了解过 TI-RTOS 中的秒模块(packages/ti\SysBIOS\hal\seconds)? 这是否会为您提供所需的内容、而不是自己编写?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试使用秒模块添加 Seconds.h 库、但它不起作用。 请告诉我如何操作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但无论如何、我自己处理溢出、现在它运行良好。