一.前言
經過上次的學習,相信大家已經初步學會使用zigbee協議進行傳送和接受資料了。今天,我們要進行的實驗是按鍵的實驗,學會如何在協議棧裡實現按鍵中斷。
二.實驗功能
在協議棧上實現按鍵中斷,but1 按下,led1 閃爍兩次。
三.**講解
大家還記得,前面做過的按鍵實驗是怎麼配置的嗎,其實基於zigbee的協議棧原理是差不多的,我們要對按鍵的介面和狀態是差不多,ti已經為我們建立了專用的按鍵配置的**檔案,我們只要在此基礎上修改就行了。先開啟hel_key.c進行修改,下面是**
#define hal_key_sw_6_port p0 //1、配置io口(s1在p0_4)
#define hal_key_sw_6_bit bv(4)
#define hal_key_sw_6_sel p0sel
#define hal_key_sw_6_dir p0dir/* edge interrupt */
#define hal_key_sw_6_edgebit bv(0)
#define hal_key_sw_6_edge hal_key_rising_edge //2、p0上公升沿觸發中斷/* sw_6 interrupts */
#define hal_key_sw_6_ien ien1 /* cpu interrupt mask register */
#define hal_key_sw_6_ienbit bv(5) /* mask bit for all of port_0 */
#define hal_key_sw_6_ictl p0ien /* port interrupt control register */
#define hal_key_sw_6_ictlbit bv(4) /* p0ien - p0.1 enable/disable bit */
#define hal_key_sw_6_pxifg p0ifg /* interrupt flag at source */
以上就是對按鍵埠進行配置,和我們普通的i/o口初始化差不多。
然後我們繼續修改,在hal_board_cfg.h 中修改
#define push1_bv bv(4)//s1 在p0_4
#define push1_sbit p0_4
最後,我們在onboard.c中進行修改
預設為查詢方式,現在我們將其改為中斷方式
我們既然使用了中斷,就要配置並用它,在hal_key.c函式中開啟中斷
這樣的話,按鍵相關的配置就出不多完成了,只要等著zigbee中的事件函式呼叫就行了。下面是具體的按鍵的處理函式。
當檢測到按鍵按下的時候,我們就可以看到燈閃爍的效果了
四.總結
通過本次,主要想向大家介紹的是zigbee裡的按鍵函式以及運用,根據按鍵對應的不同i/o口,來進行修改,達到自己的目的,需要具體**的同學可以聯絡我。
zigbee學習之路 一 zigbee介紹
一.前言 二.zigbee定義 三.zigbee特點 下面是zigbee特點的詳細介紹 1 低功耗 兩節五號電池支援長達6 個月到2 年左右的使用時間。2 低成本 由於簡化了協議棧,降低核心的效能要求,以cc2530 為例,核心就是乙個增強型的8051 核心,從而降低了晶元成本。每塊cc2530 大...
我的ZigBee學習之路
每個人總要有自己的一技之長,來體現自己的價值。每個都應該培養自己的以及之長,來實現自己的價值。這個世界是殘酷的,同時也是公平的,天道酬勤 相信付出總會有所回報。時間,是個神奇的東西,它帶走了一切,同時也帶來了一切。它是我們生命中唯一可以把握的事物。假如我們能夠活到90歲,每年365天,每天24小時,...
Zigbee學習之路3(單播實驗)
嘿,又和大家見面了 言歸正傳,在zigbee網路裡,模組之間要進行通訊,發射模組非常明確知道接收模組的網路位址,以這個位址傳送資料給接收模組,叫單播。模組在入網的時候,父節點隨機分配網路位址給子節點,但是協調器模組在網路裡的位址永遠是0x0000.一 單個任務掛鉤乙個端點!1 傳送資料的流程 cha...