亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4309|回復: 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 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表