EDA365电子论坛网

标题: zigbee中定时器事件 [打印本页]

作者: dream123    时间: 2023-2-9 11:00
标题: zigbee中定时器事件
定时器事件(添加步骤)
1,#define SAMPLEAPP_Timeing_MSG_DOOR       0xD1DE  //自己添加的
#define SAMPLEAPP_Timeing_MSG_DOORTIMEOUT   5000
2,在任务处理函数中添加这个
if ( events & SAMPLEAPP_Timeing_MSG_DOOR) //自己定义的定时事件
        {
          if(dingshi<2)
           {
            
              dingshi++;
              osal_start_timerEx( SampleApp_TaskID,
                 SAMPLEAPP_Timeing_MSG_DOOR,
                 SAMPLEAPP_Timeing_MSG_DOORTIMEOUT );
           }
         
          else{
             R1=1;
             R2=1;
             dingshi=0;
               }
return (events ^ SAMPLEAPP_Timeing_MSG_DOOR);
3,在相应的地方调用
        osal_start_timerEx( SampleApp_TaskID,
                 SAMPLEAPP_Timeing_MSG_DOOR,
                 SAMPLEAPP_Timeing_MSG_DOORTIMEOUT );   
   
出现的问题  我用这个控制继电器吸合的时间,本应定时15秒,但是继电器的灯也就闪了一下就完了,我系统里面的  osal_start_timerEx( SampleApp_TaskID,
                                                SAMPLEAPP_RUN__EVT,
                                                SAMPLEAPP_RUN_TIMEOUT );//启动超时定时器
我用上面这个函数,还是同样的放在那个循环里就没问题,可以定时15秒,请问这是为什么呢?

作者: replace    时间: 2023-2-9 13:09
你这个是什么芯片,我之前用过zigbee的模组
作者: dream123    时间: 2023-2-9 13:16
replace 发表于 2023-2-9 13:09
你这个是什么芯片,我之前用过zigbee的模组

用的是cc2530芯片    这个定时器事件我不放在这个循环里就可以定时五秒来使继电器吸合,放在循环里就闪一下就不行了,不知为什么

作者: qian211111    时间: 2023-2-9 13:22
#define SAMPLEAPP_Timeing_MSG_DOOR       0xD1DE  改小点试试 如 0x0011
另else那里要不要重新定时下呢
作者: someone    时间: 2023-2-9 13:30
首先你的事件最好是偶数比较好,SAMPLEAPP_RUN__EVT 你定义的是多少呢




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2