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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3799|回復: 0
收起左側

CC2530單片機、ZStack協議棧中按鍵中斷方式+長按短按功能

[復制鏈接]
ID:481420 發表于 2019-6-26 10:21 | 顯示全部樓層 |閱讀模式
請看附件,純屬個人理解,有不足之處請指出
1、 先找到 InitBoard()的定義
2、 修改 OnboardKeyIntEnable 的值:
OnboardKeyIntEnable = HAL_KEY_INTERRUPT_DISABLE;//失能按鍵中斷; OnboardKeyIntEnable = HAL_KEY_INTERRUPT_ENABLE; //使能按鍵中斷,此處使能按鍵 中斷。
3、 按鍵配置函數 HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback);
這個函數中失能、使能中斷執行不同的代碼。下面分別講解
a)、中斷失能 清除中斷使能寄存器。

在 HAL_KEY_POLLING_VALUE 時間后產生一個 HAL_KEY_EVENT 事件。找到這個事件的 處理函數,如下圖所示:

圖 1 禁用中斷的處理函數
在 HalKeyPoll();中進行按鍵的掃描,如果有按鍵按下,記錄鍵值,并執行按鍵處理函數 OnBoard_KeyCallback();100ms 后再次產生HAL_KEY_EVENT 事件,相當于 100ms 輪詢一 次。
b)、中斷使能
注意中斷使能時,如果用戶是普通案件代替五向按鍵,不能用五向按鍵的宏定義,需要 自己重定義,否則會出現錯誤。
重定義如下:



如果中斷使能,則進入按鍵中斷的配置: a)、配置 SW1 邊沿觸發、設置中斷初始條件 b)、配置 SW2 邊沿觸發、設置中斷初始條件 c)、停止按鍵輪詢。
4、找到按鍵的中斷處理函數,并進行更改
按鍵 P0 口的中斷處理函數為 HAL_ISR_FUNCTION( halKeyPort0Isr, P0INT_VECTOR )
當有中斷產生是,執行 halProcessKeyInterrupt 函數。 代碼如下:



a)、對按鍵 SW6
檢測到按鍵邊沿后,產生 HAL_KEY_EVENT 事件,HalKeyPoll ()函數中記錄 keys= HAL_KEY_SW_6 的值,并將其發送給 MyApp_TaskID 任務。MyApp_TaskID 中檢測到按鍵 改變,產生 KEY_CHANGE 事件,調用按鍵處理函數
MyApp_HandleKeys()。
b)、對按鍵 SW7(有按鍵長按短按的功能)
按鍵按下檢測到上升邊沿,記錄時間 t1;              將觸發邊沿改變成下降沿觸發,按鍵松開時記


錄系統時間 T2。全局變量 MyApp_Key_differnt_Time=t2-t1; 之后又進入到 HalKeyPoll
(void)處理函數中;


Keybuf1 和 keybuf2 用來檢測按鍵是否產生了一個按下&抬起的動作,如果不這么做, 按鍵平時為高電平,抬起按鍵后也為高電平,用 Keybuf1 和keybuf2 作為按鍵按下抬起 完成的標志位。然后的過程和 SW6 類似。
4、 MyApp_TaskID 任務中對按鍵的實際處理代碼 MyApp_HandleKeys(); 按鍵 SW6 不做講解,對 SW7 的代碼如下:
長按超過 3000ms,執行清除 NV 的動作 小于 3000ms,執行功率改變的動作。

pdf格式文檔51黑下載地址:
Zstack中將按鍵設置為_中斷方式.pdf (505.2 KB, 下載次數: 22)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产久精国产 | 人人爽日日躁夜夜躁尤物 | 国产精品96久久久久久 | 丁香久久 | 天天干天天色 | 成人片免费看 | 美日韩免费 | 久久人人网 | 久久天天综合 | av中文在线 | 日本午夜精品 | 日韩一级二级片 | 在线观看国产wwwa级羞羞视频 | 国产免费一区二区 | 国产成人一区二区三区电影 | 日韩在线免费 | 日韩爱爱网 | 伊人网站 | www.天天操.com| 97热在线| 天天射影院 | 91精品国产一区 | 久久国产香蕉 | 亚洲午夜在线 | 亚洲国产一区在线 | 成人免费淫片aa视频免费 | 在线一区二区三区 | 91中文字幕在线观看 | 中文字幕一区二区三 | 国产96色在线 | 男女免费视频网站 | 97精品视频在线 | 97久久久 | 欧美精品在线免费 | 免费国产成人av | 男女羞羞免费网站 | 亚洲成人一区二区 | 伊人久操 | 美国av毛片 | 成人精品毛片国产亚洲av十九禁 | 国产精品一区三区 |