久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4877|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

CC2530的按鍵流程

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:76127 發(fā)表于 2015-4-18 00:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
按鍵有兩種實現(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ù)實際需要在在hal_key.c中HalKeyConfig()中,修改代碼,其中原有程序查詢方式下只對上,下,左,右四個按鍵進(jìn)行配置處理;中斷方式只是sw6,sw7進(jìn)行配置處理。
2,在應(yīng)用層SampleApp_HandleKeys()添加具體按鍵事件


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 男女羞羞视频网站 | 一区二区三区中文字幕 | 欧美日韩在线一区二区三区 | 久久久久久久久久影视 | 精品九九 | 中文精品视频 | 国产日韩av一区二区 | 日韩在线播放中文字幕 | 日韩一区二区福利视频 | 欧美日日| 亚洲高清电影 | 亚洲一区二区三区四区五区中文 | 久久国产精品首页 | 91免费电影 | 在线观看亚洲 | 欧美日韩亚洲一区 | 国产高潮av | 久久精品国产99国产 | 蜜桃臀av一区二区三区 | 亚洲一区中文字幕 | 亚洲在线中文字幕 | 三级黄色网址 | 国产精品一区二区三 | 国产成都精品91一区二区三 | 成人中文网 | 美女爽到呻吟久久久久 | 国产精品久久久久久久久免费相片 | 国产精品资源在线观看 | 不卡一区二区三区四区 | 免费三级网 | 日日摸日日碰夜夜爽2015电影 | 在线观看国产 | 国产精品久久国产愉拍 | 亚洲综合在线网 | 中文字幕成人在线 | 国产日韩精品一区 | 高清不卡毛片 | 日韩精品一区二区三区视频播放 | 亚洲国产中文在线 | 久久在线 | 99re热这里只有精品视频 |