日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

zigbee协议栈的系统相关函数的使用 仿照协议栈写事件

發布時間:2025/3/12 windows 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zigbee协议栈的系统相关函数的使用 仿照协议栈写事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 1.osal_set_event函數的使用
      • 2.osal_start_timerEx函數,數碼管變成c,兩秒鐘以后,燈點亮。
      • 3.我們能不能自己添加一個事件而不用GENERICAPP_SEND_MSG_EVT事件。

主要就是通過這個實驗知道了:

  • 怎么在初始化時候干一些事情
  • 那些函數的參數是和什么有關的
  • 怎么仿照協議棧自己寫一個事件
  • 1.osal_set_event函數的使用

    修改事物,點亮p0_1

    修改代碼GenericApp.c的如下代碼:

    if ( events & GENERICAPP_SEND_MSG_EVT ){// Send "the" messageGenericApp_SendTheMessage();// Setup to send message againosal_start_timerEx( GenericApp_TaskID,GENERICAPP_SEND_MSG_EVT,GENERICAPP_SEND_MSG_TIMEOUT );// return unprocessed eventsreturn (events ^ GENERICAPP_SEND_MSG_EVT);}



    這里面的兩個變量可以看:


    設置斷點,全速運行,然后運行至斷點,顯示:

    按F9取消當前斷點,可發現數碼管顯示C

    此時再全速運行,可以發現程序跳到了這里

    再按F9,然后全速運行,燈變亮了

    然后復位,數碼管變成c,燈立即點亮

    2.osal_start_timerEx函數,數碼管變成c,兩秒鐘以后,燈點亮。

    把osal_set_event(GenericApp_TaskID,GENERICAPP_SEND_MSG_EVT);

    改成osal_start_timerEx(GenericApp_TaskID,GENERICAPP_SEND_MSG_EVT,2000);

    3.我們能不能自己添加一個事件而不用GENERICAPP_SEND_MSG_EVT事件。

    找到定義#define GENERICAPP_SEND_MSG_EVT 0x0001

    其中四位中的每一位只能是8421中的一個,然后其余所有位為0,也就是說十六位里面只有一位是1。

    1.在GenericApp.h里面,添加我們的事件GENERICAPP_MY_EVT的定義

    #define GENERICAPP_MY_EVT 0X0002

    2.模仿著在GenericApp.c建一個語句

    if ( events & GENERICAPP_SEND_MSG_EVT ){return (events ^ GENERICAPP_SEND_MSG_EVT);}

    變成:

    if ( events & GENERICAPP_MY_EVT ){return (events ^ GENERICAPP_MY_EVT);}

    我們現在要實現一個任務,把p0_4點亮

    if(GenericApp_NwkState == DEV_ZB_COORD){//如果模塊成了協調器,進到這LS164_BYTE(11);//osal_set_event(GenericApp_TaskID,GENERICAPP_SEND_MSG_EVT);//應用層GenericApp_TaskID任務處理GENERICAPP_SEND_MSG_EVT事物osal_start_timerEx(GenericApp_TaskID,GENERICAPP_MY_EVT,3000);}


    改:

    if ( events & GENERICAPP_SEND_MSG_EVT ){P0DIR |=0X10;P0_4=0;return (events ^ GENERICAPP_SEND_MSG_EVT);}


    但是燈不亮,添加斷點

    發現在

    P0DIR |=0X10;
    P0_4=0;

    出問題。

    修改:初始化工作作全面

    if ( events & GENERICAPP_SEND_MSG_EVT ){P0SEL &=0XEF;P0DIR |=0X10;P0_4=0;return (events ^ GENERICAPP_SEND_MSG_EVT);}

    在Zmain.c里面的endif里面添加,以達到覆蓋的目的,覆蓋和TI起沖突的那部分

    #endifLS164_Cfg();LS164_BYTE(10);

    此時燈點亮了。

    總結

    以上是生活随笔為你收集整理的zigbee协议栈的系统相关函数的使用 仿照协议栈写事件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。