定时启动事件怎样能延时2个小时以上?
您好:
1. 因为项目的原因,需要终端2个小时才启动一个事件,但是目前协议栈上给的函数osal_start_timerEx( uint8 taskID, uint16 event_id, uint16 timeout_value ), 最多延时65秒,试问,怎样才能延时到2个小时呢?
2. 我将osal_start_timerEx( uint8 taskID, uint16 event_id, uint16 timeout_value ),改为osal_start_timerEx( uint8 taskID, uint16 event_id, uint32 timeout_value ),
也将osalTimerRec_t * osalAddTimer( uint8 task_id, uint16 event_flag, uint16 timeout ),改为
osalTimerRec_t * osalAddTimer( uint8 task_id, uint16 event_flag, uint32 timeout ),发现可以延时到2个小时以上,但是,协调器向终端发送信息,终端就接收不到了,这是什么原因?我应该做什么样的改动?
3.我按照 2 改完后,发现有一个警告,但是这个警告怎么也找不到修改的地方,这个警告是:Warning[w6]: Type conflict for external/entry "osal_start_timerEx", in module APS against external/entry in module OSAL_Timers; function types differ in parameter 3; different basic types ,我该怎么修改?
期待你们的回复,谢谢了
已回复了。可以考虑使用新的协议栈,里面已经改为了unint32. osal接口底层也会用到,你这样改显然是有问题的。
实在要在这个版本上做,你可以把定时任务定得小一点 ,uint16最多是65535ms, 你就定成60s的一个定时器,然后在定时处理任务里,用一个全局变量不断++
当这个值大于7200就是2小时嘛
{
// 60s定时事件,restart定时器60s
osal_start_timerEx(id, even, 60000);
if( twohours++ >=7200)
{
//两小时到了
twohours=0;
}
}
谢谢TY回复,
您说的新协议栈是Z-Stack Home 1.2.2a吗?
是的。
TY您好:
我按照网上的方法将ewp文件删除了,还是打不开,我需要更换IAR吗?我用的IAR是8051Embedded Workbench
不要删。重新下个IAR就好了,如下Link,9.10.1的版本。
https://www.iar.com/iar-embedded-workbench/partners/texas-instruments/ti-wireless/
TY您好,
我重新下载了9.10.1版本,然后我将原来Source文件夹下的文件直接拷入到新版协议栈SampleTemperatureSensor下的Source文件夹下,将新协议栈下的文件删除掉,然后debug后,发现终端都加入不了网络了,协调器也不发信息了
为什么会出现这样的情况?
不能这样覆盖式copy的。你先用协议栈本身的例子SampleTemperatureSensor来测试。
好的,我为了快速实现所以。。。恩恩,我再试试