版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
CC2538cbcc2538cb套件如上圖;地址套件支持TinyOS,Contiki3.0等主流的 n系統 QQ n/Zigbee序模塊說備1USBUART/供2復345Mcu512kFlash/32k6預留,DIY使用(8CC25387D3(PC0~綠 D2(PC1~黃 D1(PC2~紅8USB轉串口占用CC2538PA0/PA1注CC2538的IO口可以軟件編程指定功能,如UART、SPI、I2C、SSI、ADC、輸入、輸出等,靈活度高,故用戶可以使用預留的IO口完成DIY傳感器的接入或其它的總線通信;②,cc2538cb節(jié)點采用PL2303USB轉串而不是直接使用2538的USB功能;在于2303的驅動對于虛擬機Linux/Ubuntu,Android等是免驅的,能夠更加簡單快速的使用Linux/Android,用戶可以OTG線完成cc2538cb和Android等的接入測試;我們在學習zigbee或6lon的時候兩個主流系統的選擇:TinyOS和Contiki;TinyOS初學者學習使用優(yōu)點: 2, 事件驅動機制,類似單片機的設計:主循環(huán)執(zhí)行代碼,硬件中斷打斷,事件類似單片機的硬件中斷; nesC語言使代碼閱讀和分析更加快捷 的技術沉淀較好,從官網到源碼模塊部分幫助文檔齊全正如編程手冊介紹nesC是C語言的方言,支持C語言的所有特性,并在此基礎上采用了JAVA的一些程序設計思想;nesC有幾大的概念即組件,類比C語言是完成一個功能模塊的C文件的集接口,組件連接文件,類比C語言的.h文件,進行函數方法,返回事件的nesC編譯器編譯流再此讓我們來了解一下nesC編譯器生成最終單片機執(zhí)行二進制文件流程nesCnesC語言支持C語言所以特性,故相關的c文件和h文件不做介紹,現在讓我們編程必須用到的文件1,3,Module4,前面介紹了nesC的組件(components)回憶一下C語言的代碼編寫,我們需要編寫c/h/makefile文件,多個c文件之間的函數和全局變量調用我們是通過包含.h文件實現;對于現,組件調用層次遵循自頂而下,需要完成一個功能我們在c語言一般編寫main.c文件來實nesC中則編寫一個組件,同時編寫Makefile來通知nesC編譯器編譯該工程;Module,一定要遵循文件名稱和代碼中的configuration/module一致;的編程,首先應該先編寫c文件,module好是如此: 其中的藍色字體部分為nesC關鍵字provides/uses關鍵字,components向外提供接口(interface)或者使用哪些接如blink例程:BlinkC.nc*1led點燈實*節(jié)點需求數*編譯命令make********************************************************************/#include"Timerh"moduleBlinkCusesinterfaceTimer<TMilli>asusesinterfaceTimer<TMilli>asusesinterfaceTimer<TMilli>asusesinterfaceusesinterface}taskvoid*啟動eventvoid ) *Timer0定時時間到事eventvoid /**翻轉led0電平,對應cc2538cb的綠燈 call*taskvoid /**翻轉led1電平,對應cc2538cb的黃燈 call *Timer1定時時間到事eventvoid /****提交time1_Task任務 post *Timer2定時時間到事eventvoid /**翻轉led2電平,對應cc2538cb的紅燈 call} Leds nesC將C語言的函數稱為command,調用command使用關鍵字call,使用call 修飾函數方法 (提供者)存在事件返回,那么消費者必須在代碼module中實現事件部分代碼; 除去C語言switch語句功能在nesC中用來修飾event,表明該事件被忽略 用來修飾command/event,和mcu硬件操作相關使用 任務關鍵字,修飾一個函數為任 提交任務關鍵字,post分析例程現在我們完成了一個名為BlinkC的module(components)的代碼的編寫,類比C語言我們完成了c文件的編寫,但是對于TinyOSnesC我們并沒有指定BlinkC用到的接口是誰提供的,也就是我們寫C語言時候的包含.h文件才能調用那些c文件提供的函數和變量,下面我們需要學習的文件是configuration,這個文件接下來將完成這些工作;文件代碼原型 name(形參 ……}其中的藍色字體部分為nesC關鍵字configuration/implementation為固定寫法configuration的作用在于描述我們編寫的組件對外提供哪些interface,對內使用了那些componentsblink例程來分析,BlinkAppC.nc源 componentsMainC,BlinkC, componentsnewTimerMilliC()as componentsnewTimerMilliC()as componentsnewTimerMilliC()as BlinkC-> BlinkC.Timer0-> BlinkC.Timer1-> BlinkC.Timer2-> BlinkC.Leds-> }componentsMainC,BlinkC,LedsC這句代碼我們看到上一節(jié)講到的moduleBlinkCBlinkCMainC.Boot開始描述連接(wire)BlinkC.Boot下面介紹連接符的使 =這三個符號,消費者->生產者等價于生產者<-消費者,=interface之間的as,重命名關鍵字,等價于給components或interface重命下面大家可以自行閱讀 源碼和 那么我們說現在寫的是C語言中的h文件,實際上咱們只是寫了一半,那么對于nesC我們需要編寫interface來進行函數(事件),如果咱們編寫的組件向外提供了interface,interface文件的作用才是咱們在c語言h文件中函數; 編程的在于組件和接口,接口文件代碼原型寫interfaceinterface_name<形參 }前面提到了provides/uses是提供/使用接口,interface文件就是通知nesC編譯器接口的command/event的;如blink例程用到了MainC組件,可以去查看Main.nc文件,它提供了一個Boot接口;到此為止我們已經學習了nesC的三種文件,也就完成了基本源碼的編寫,由于我們并沒有使用DE等工具來建立工程,那么我們對工程的管理就需要引入重要的文件Makefle注意此處的Makefile并不是咱們gcc編譯編寫makeTinyOS的例程工程原則,指定編譯輸入的組includeCOMPONENT=?類似咱們的工程名,實際使用時通知nesC編譯器最上層的組件是?如例程blink,COMPONENT=BlinkAppC;include$(MAKERULES)固定寫法,我們清楚TinyOS支持多平臺,MAKERULES是環(huán)境變量,可以使用echo$MAKERULESsupport/make中實際的makefile以及makerulesnesCwirebin/hex的生成; 編程最部分-參數化接口編nesC所帶來的編程的強大之處,大家前面的辛苦學算能夠享受nesC帶來的好處了;componentsconfigurationmodule,interface都是可以把他理解成一個數組元素,不要死板的理解成一個C文件,他們都是一個元素,當然也可以實例化n個;這就是參數化
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度家政服務業(yè)與洗衣店深度合作合同2篇
- 二零二五年度房屋租賃裝修保證金合同范本3篇
- 二零二五年度海洋工程設備安裝與維護合同6篇
- 二零二五年度水上交通安全評價與船舶安全檢驗合同3篇
- 二零二五年度房產抵押個人養(yǎng)老貸款合同3篇
- 二零二五年度國畫收藏品鑒定與買賣合同3篇
- 環(huán)形運動器材及課程設計
- 海南職業(yè)技術學院《對外漢語教育學引論》2023-2024學年第一學期期末試卷
- 二零二五年度區(qū)塊鏈技術應用合同條款與數字資產交易規(guī)則3篇
- 2025版建筑工程安全防護股份制合作協議書3篇
- 2023-2024學年甘肅省嘉峪關市酒鋼三中高三上數學期末學業(yè)質量監(jiān)測試題含解析
- 水利機械施工方案
- 懸挑式腳手架驗收記錄表
- 主變壓器試驗報告模板
- 電動叉車安全操作規(guī)程
- 靜鉆根植樁施工組織設計
- 工程精細化管理
- 柴油供貨運輸服務方案
- 2022年長春市中小學教師筆試試題
- 肉牛肉羊屠宰加工項目選址方案
- 清洗劑msds清洗劑MSDS
評論
0/150
提交評論