欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5226|回復(fù): 0
收起左側(cè)

CC2530的按鍵流程

[復(fù)制鏈接]
ID:76127 發(fā)表于 2015-4-18 00:27 | 顯示全部樓層 |閱讀模式
按鍵有兩種實(shí)現(xiàn)方式查詢和中斷,其初始位置在OnBoard.c中InitBoard()中
      OnboardKeyIntEnable = HAL_KEY_INTERRUPT_ENABLE;  //中斷方式
    //OnboardKeyIntEnable = HAL_KEY_INTERRUPT_DISABLE;  查詢方式
    HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback);
   OnBoard_KeyCallback--按鍵回調(diào)函數(shù)
1,查詢法函數(shù)調(diào)用流程如下:      
    HalKeyConfig()配置一定時器為輪詢按鍵作準(zhǔn)備——>
    時間一到觸發(fā)系統(tǒng)任務(wù)事件調(diào)用hal_driver.c中Hal_ProcessEvent()—— >
    調(diào)用HalKeyPoll()得到按鍵值——>
    調(diào)用OnBoard.c中OnBoard_KeyCallback()進(jìn)一步處理——>
    調(diào)用OnBoard_SendKeys()構(gòu)造消息包,準(zhǔn)備觸發(fā)應(yīng)用按鍵事件【注意這個應(yīng)用之前必須通過RegisterForKeys()注冊接收按鍵事件的任務(wù)ID】——>
    調(diào)用osal_msg_send()向系統(tǒng)發(fā)送消息——>
    調(diào)用osal_set_event()設(shè)置事件發(fā)生標(biāo)志——>
    調(diào)用SampleApp_ProcessEvent()處理事件——>
    最終調(diào)用SampleApp_HandleKeys()處理具體按鍵事件

2,中斷法函數(shù)調(diào)用流程如下:      
    HalKeyConfig()進(jìn)行按鍵中斷配置——>
    按鍵引起中斷進(jìn)入中斷函數(shù)HAL_ISR_FUNCTION()(該函數(shù)在hal_key.c中)——>
    調(diào)用halProcessKeyInterrupt()對按鍵中斷進(jìn)行下一步處理:清除中斷標(biāo)志,啟動一定時器——>
    相應(yīng)事件為HAL_KEY_EVENT,時間為HAL_KEY_DEBOUNCE_VALUE。(且#define HAL_KEY_DEBOUNCE_VALUE 25,即25ms,這與開頭的英文說明一致,在中斷發(fā)生后,需等待25ms再讀鍵值,以消除按鍵的回跳。)
    25ms到了以后,觸發(fā)HAL層任務(wù)HAL_KEY_EVENT事件,調(diào)用HAL層任務(wù)事件處理函數(shù)Hal_ProcessEvent()
    時間一到觸發(fā)系統(tǒng)任務(wù)事件調(diào)用HAL\Common\hal_driver.c中Hal_ProcessEvent()——>
    調(diào)用HalKeyPoll()得到按鍵值——>
    調(diào)用OnBoard.c中OnBoard_KeyCallback()進(jìn)一步處理——>
    調(diào)用OnBoard_SendKeys()構(gòu)造消息包,準(zhǔn)備觸發(fā)應(yīng)用按鍵事件【注意這個應(yīng)用之前必須通過RegisterForKeys()注冊接收按鍵事件的任務(wù)ID】——>

    調(diào)用osal_msg_send()向系統(tǒng)發(fā)送消息——>
    調(diào)用osal_set_event()設(shè)置事件發(fā)生標(biāo)志——>
    調(diào)用SampleApp_ProcessEvent()處理事件——>
    最終調(diào)用SampleApp_HandleKeys()處理具體按鍵事件


注:
1,根據(jù)實(shí)際需要在在hal_key.c中HalKeyConfig()中,修改代碼,其中原有程序查詢方式下只對上,下,左,右四個按鍵進(jìn)行配置處理;中斷方式只是sw6,sw7進(jìn)行配置處理。
2,在應(yīng)用層SampleApp_HandleKeys()添加具體按鍵事件


相關(guān)帖子

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表