具體方法
發(fā)布時(shí)間:2012/6/15 20:13:48 訪問(wèn)次數(shù):1693
先到網(wǎng)站http://www.ard uino.cc/playground/Main/MsTimer2下載MsTimer2.zip,然后解壓XC95144XL-10TQG100C到電腦的Arduino編程平臺(tái)的libraries文件夾下的MsTimer2文件夾中。解裳的文件有:MsTimer2.h、MsTimer2.cpp和一個(gè)文件夾examples。
在編制程序sketch時(shí),文件頭部增加#include<MsTimer2.h>的語(yǔ)句,就可以在程序中使用控制time12中斷的函數(shù)了(共3個(gè)):
MsTimer2::start();∥開(kāi)啟time(2
MsTimer2::stop();∥關(guān)閉timer2
MsTimer2::set(unsigned long ms,vO矧㈤());//申斷響應(yīng)設(shè)置
以上函數(shù)都是針對(duì)MCU內(nèi)部功能而非外部元器件,所以使用雙冒號(hào)表示它是MsTimer2類的函數(shù)。中斷響應(yīng)的第1個(gè)參數(shù)ms是中斷間隔毫秒數(shù),第2個(gè)參數(shù)(+0()是需要在中斷時(shí)執(zhí)行的功能函數(shù)。
這樣使用timer2定時(shí)器中斷比起直接編程容易多了,因?yàn)?次中斷之間的時(shí)間很長(zhǎng),所以中斷函數(shù)可以處理較多的任務(wù),我們把判斷時(shí)、分、秒、啟動(dòng)測(cè)溫和讀數(shù)都安排在這里進(jìn)行。
為了使用DS18820測(cè)溫,Arduino的擴(kuò)展類庫(kù)中有一個(gè)專門(mén)針對(duì)它開(kāi)發(fā)的OneWire類,里面包含了操控DS18820所必要的各種功能函數(shù)。
之所以能夠在單線總線上識(shí)別每個(gè)DS18820,是因?yàn)槊總(gè)DS18820都具有一個(gè)包括器件識(shí)別碼(1字節(jié))、序列號(hào)(6字節(jié))和CRG校驗(yàn)碼(1字節(jié))共8字節(jié)長(zhǎng)的ROM,其中的序列號(hào)就是它唯一的身份證,它就代表了具體每個(gè)DS18820的地址。開(kāi)始時(shí)MCU在數(shù)據(jù)線上發(fā)出低復(fù)位脈沖,然后恢復(fù)總線為高,隨后DS18820發(fā)出響應(yīng)脈>中,MCU發(fā)現(xiàn)有響應(yīng)脈j中后再搜索,按位逐個(gè)取得器件的庫(kù)列號(hào),也就是器件地址,再對(duì)各個(gè)器件發(fā)出轉(zhuǎn)換命令進(jìn)行測(cè)溫,由每個(gè)DS18820測(cè)溫并把結(jié)果保存在自己的RAM中,經(jīng)過(guò)轉(zhuǎn)換時(shí)間后(隨分辨率不同,94~750ms),由MCU按地址讀出每個(gè)DS18820的測(cè)溫結(jié)果。
為實(shí)現(xiàn)上述功能,在OneWire類中的函數(shù)主要以ds作為程序中的實(shí)例,見(jiàn)表2。
還有一個(gè)MCU計(jì)算CRC校驗(yàn)值的函數(shù),OneWire.:crc8( byteaddr,7),用它計(jì)算搜索到的器件CRC校驗(yàn)值,在程序中判斷是否與器件的ROM最高位的已有的CRC值相等,如不相等則有問(wèn)題。
利用以上函數(shù)就可以實(shí)現(xiàn)多點(diǎn)測(cè)溫,對(duì)于位讀寫(xiě)的具體脈沖寬度就不必考慮,函數(shù)內(nèi)部已經(jīng)調(diào)整好了,直接調(diào)用就行了。
先到網(wǎng)站http://www.ard uino.cc/playground/Main/MsTimer2下載MsTimer2.zip,然后解壓XC95144XL-10TQG100C到電腦的Arduino編程平臺(tái)的libraries文件夾下的MsTimer2文件夾中。解裳的文件有:MsTimer2.h、MsTimer2.cpp和一個(gè)文件夾examples。
在編制程序sketch時(shí),文件頭部增加#include<MsTimer2.h>的語(yǔ)句,就可以在程序中使用控制time12中斷的函數(shù)了(共3個(gè)):
MsTimer2::start();∥開(kāi)啟time(2
MsTimer2::stop();∥關(guān)閉timer2
MsTimer2::set(unsigned long ms,vO矧㈤());//申斷響應(yīng)設(shè)置
以上函數(shù)都是針對(duì)MCU內(nèi)部功能而非外部元器件,所以使用雙冒號(hào)表示它是MsTimer2類的函數(shù)。中斷響應(yīng)的第1個(gè)參數(shù)ms是中斷間隔毫秒數(shù),第2個(gè)參數(shù)(+0()是需要在中斷時(shí)執(zhí)行的功能函數(shù)。
這樣使用timer2定時(shí)器中斷比起直接編程容易多了,因?yàn)?次中斷之間的時(shí)間很長(zhǎng),所以中斷函數(shù)可以處理較多的任務(wù),我們把判斷時(shí)、分、秒、啟動(dòng)測(cè)溫和讀數(shù)都安排在這里進(jìn)行。
為了使用DS18820測(cè)溫,Arduino的擴(kuò)展類庫(kù)中有一個(gè)專門(mén)針對(duì)它開(kāi)發(fā)的OneWire類,里面包含了操控DS18820所必要的各種功能函數(shù)。
之所以能夠在單線總線上識(shí)別每個(gè)DS18820,是因?yàn)槊總(gè)DS18820都具有一個(gè)包括器件識(shí)別碼(1字節(jié))、序列號(hào)(6字節(jié))和CRG校驗(yàn)碼(1字節(jié))共8字節(jié)長(zhǎng)的ROM,其中的序列號(hào)就是它唯一的身份證,它就代表了具體每個(gè)DS18820的地址。開(kāi)始時(shí)MCU在數(shù)據(jù)線上發(fā)出低復(fù)位脈沖,然后恢復(fù)總線為高,隨后DS18820發(fā)出響應(yīng)脈>中,MCU發(fā)現(xiàn)有響應(yīng)脈j中后再搜索,按位逐個(gè)取得器件的庫(kù)列號(hào),也就是器件地址,再對(duì)各個(gè)器件發(fā)出轉(zhuǎn)換命令進(jìn)行測(cè)溫,由每個(gè)DS18820測(cè)溫并把結(jié)果保存在自己的RAM中,經(jīng)過(guò)轉(zhuǎn)換時(shí)間后(隨分辨率不同,94~750ms),由MCU按地址讀出每個(gè)DS18820的測(cè)溫結(jié)果。
為實(shí)現(xiàn)上述功能,在OneWire類中的函數(shù)主要以ds作為程序中的實(shí)例,見(jiàn)表2。
還有一個(gè)MCU計(jì)算CRC校驗(yàn)值的函數(shù),OneWire.:crc8( byteaddr,7),用它計(jì)算搜索到的器件CRC校驗(yàn)值,在程序中判斷是否與器件的ROM最高位的已有的CRC值相等,如不相等則有問(wèn)題。
利用以上函數(shù)就可以實(shí)現(xiàn)多點(diǎn)測(cè)溫,對(duì)于位讀寫(xiě)的具體脈沖寬度就不必考慮,函數(shù)內(nèi)部已經(jīng)調(diào)整好了,直接調(diào)用就行了。
上一篇:硅三極管的功能簡(jiǎn)介
熱門(mén)點(diǎn)擊
- 毫伏表
- 硅三極管的功能簡(jiǎn)介
- 偏置電壓電路(WH0504)
- 三相電源與電動(dòng)機(jī)接線
- DIY定時(shí)攝影使用
- 電沆斬波控制
- 怎樣顯示時(shí)間?
- 具體方法
- 振蕩電路中采用陶瓷振子
- 話筒和AF放大器
推薦技術(shù)資料
- 全集成直接飛行時(shí)間(dToF)傳感器
- 2025年半導(dǎo)體市場(chǎng)發(fā)展趨勢(shì)未
- GW2A系列FPGA芯片應(yīng)用參數(shù)
- DDR類儲(chǔ)存器接口解決方案
- 2.5G bps MIPI D
- 新一代 Arora-V系列FPGA產(chǎn)品詳情
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究