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.

CC1310的定时器超量程

你好

我想定一个24小时的定时器使用了如下函数

ReportTimeoutClockHandle,TIME_US/ Clock_tickPeriod);

但是由于第二个参数是32位的,而1天超出了这个范围,我就想修改Clock_tickPeriod这个参数,但是找不到修改的地方,使用跳转跳到了debug里面release-pem3.c文件,然后这个应该是在编译后生成的,修改这个地方时没有反应的,输出仍然是默认的0X0a,请问如何修改这个参数来 使其能个设定一天的定时器呢? 请问修改这个变量对整个系统有没有影响呢?

谢谢

  • 上列函数粘贴没粘贴完整 实际上是
    Clock_setTimeout(ReportTimeoutClockHandle , TIME_US/ Clock_tickPeriod);
  • 这个是系统tick的周期,一般不建议修改。

    如果想实现超长时间的定时,可以使用一个较长的周期性clock,然后在这个clock的callback中对自定义的counter累加,通过counter值来进行超长时间的定时判定。比如定义一个timeout为1小时的周期性clock,然后每次1小时timeout的时候对counter++,这样当counter加到24的时候就是一天,加到48时就是两天。抛砖引玉,可能有更好的方式。