用Zstack,让CC2530进入低功耗PM2模式,那么C2530要多久时间才醒一次?
TI 工程师,你好,用Zstack,让CC2530进入低功耗PM2模式,那么C2530要多久时间才醒一次,这个睡眠定时是不可以用户自己设置睡眠时间值得吗?还有就是,如果是OSAL系统自动设置睡眠定时器的睡眠时间值,那么CC2530进入低功耗PM2模式后要多久才醒一次呢?如果睡眠定时器的睡眠时间值是有osal_timeout的值决定,那个这个osal_timeout的值是多少呢?在协议栈的哪里可以查到呢?
系统会自己计算下一次任务的时间,然后设置睡眠的时间,保证时间到的时候自己唤醒,比如你用osal_start_timerEx(taskid, event, timeout)设置了一个任务,假设你只有这个任务,那么设置完后系统就会休眠timeout毫秒的时间,超时后唤醒然后进入taskid任务的event事件。实际上这中间系统还有可能唤醒执行NWK层、MAC层或者HAL层等等其他层的任务,对你的应用层来说,你可以认为睡眠时间就是你设置的osal_timeout的值。
谢谢!但是如果不是定时循环执行一个任务,就是说那个任务只执行一次就不用再执行了,这样OSAL系统还会自动定时睡眠时间,自动唤醒吗?
参考
http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/p/46848/162746.aspx#162746
您好,我通过修改osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, (SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF)) )中SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT 的值实现了定时,但是最大值只能改到65535即65s,当继续加大值的时候出现一个警告,且定时时间明显变短。现在我想定时5分钟请问怎么处理呢?谢谢,期待您的回复。
你看看定时器关于值的定义,如果是uint16的话就只能到65535的