- 相關(guān)推薦
μC/OS-II實(shí)時(shí)內(nèi)核下的A/D驅(qū)動(dòng)程序設(shè)計(jì)
摘要:詳細(xì)分析在μC/OS-II實(shí)時(shí)內(nèi)核下驅(qū)動(dòng)程序讀取A/D的三種方法;闡述C8051F015單片機(jī)的A/D轉(zhuǎn)換器的配置、轉(zhuǎn)換特點(diǎn)及其驅(qū)動(dòng)程序讀取A/D采用的方法;針對(duì)C8051F015單片機(jī)分析A/D驅(qū)動(dòng)程序設(shè)計(jì)的方法和思想。這些方法和思想為在μC/OS-II下訪(fǎng)問(wèn)其它類(lèi)型的A/D提供了很好的借鑒。關(guān)鍵詞:μC/OS-II A/D 驅(qū)動(dòng)程序 C8051F015
A/D轉(zhuǎn)換是單片機(jī)數(shù)據(jù)采集系統(tǒng)的重要組成部分,實(shí)時(shí)內(nèi)核下A/D驅(qū)動(dòng)程序的實(shí)現(xiàn)過(guò)程主取決于A/D轉(zhuǎn)換器的轉(zhuǎn)換時(shí)間。本文首先比較和分析μC/OS-II下A/D采樣數(shù)據(jù)的三種方法;其次介紹C8051F015單片機(jī)A/D模數(shù)轉(zhuǎn)換器配置及特點(diǎn);最后,在μC/OS-II內(nèi)核移植到8位單片機(jī)C8051F015的基礎(chǔ)上,介紹編寫(xiě)A/D驅(qū)動(dòng)程序的一般思想和方法。
1 μC/OS-II實(shí)時(shí)內(nèi)核下的A/D讀方法
實(shí)時(shí)內(nèi)核下,驅(qū)動(dòng)程序采用什么方法讀取A/D采樣數(shù)據(jù)是首先考慮的問(wèn)題。許多因素將影響讀取A/D,如A/D的轉(zhuǎn)換時(shí)間、模擬值的轉(zhuǎn)換頻率、輸入通道數(shù)等,但最主要的取決于A/D的轉(zhuǎn)換時(shí)間。典型的A/D轉(zhuǎn)換典型的A/D轉(zhuǎn)換電路由模擬多路復(fù)用器(MUX)、放大器和模數(shù)轉(zhuǎn)換器(ADC)三部分組成。下面描述讀取A/D的三種方法。
圖1所示的是第1種讀取方法。假設(shè)A/D轉(zhuǎn)換器的轉(zhuǎn)換時(shí)間較慢(5ms以上)。應(yīng)用程序調(diào)用圖1所示的驅(qū)動(dòng)程序,并傳遞要讀取的通道。驅(qū)動(dòng)程序通過(guò)MUX選擇要讀取的模擬通道(①)開(kāi)始讀。有,延時(shí)幾μs以便使信號(hào)通過(guò)MUX傳遞,并之穩(wěn)定下來(lái)。接著,ADC被觸發(fā)開(kāi)始轉(zhuǎn)換(②)。然后驅(qū)動(dòng)程序延時(shí)一段時(shí)間以完成轉(zhuǎn)換(③_。延時(shí)時(shí)間必須比ADC轉(zhuǎn)換時(shí)間長(zhǎng)。最后驅(qū)動(dòng)程序讀取ADC轉(zhuǎn)換結(jié)果(④)。并將轉(zhuǎn)換結(jié)果返回到應(yīng)用程序(⑤)。
圖2所示的是第2種讀取方法。當(dāng)模擬轉(zhuǎn)換完成后,ADC產(chǎn)生的個(gè)中斷信號(hào)。若ADC轉(zhuǎn)換完成,ISR給信號(hào)量發(fā)一個(gè)信號(hào)(⑤),通知驅(qū)動(dòng)程序,ADC已經(jīng)完成轉(zhuǎn)換。如果ADC在規(guī)定的時(shí)限內(nèi)沒(méi)有完成轉(zhuǎn)換。信號(hào)量超過(guò)(③),則驅(qū)動(dòng)程序不再等待下去。驅(qū)動(dòng)程序和中斷服務(wù)子程序(ISR)的偽代碼如下:
ADRd(ChannelNumber)
{
選擇要讀取的模擬輸入通道;
等待AMUX輸出穩(wěn)定;
啟動(dòng)ADC轉(zhuǎn)換;
等待來(lái)自ADC轉(zhuǎn)換結(jié)束中斷產(chǎn)生的信號(hào)量;
if(超時(shí)){
*eer=信號(hào)錯(cuò)誤;
return;
}else{
讀取ADC轉(zhuǎn)換結(jié)果并將其返回到應(yīng)用程序;
}
}
&
[1] [2] [3] [4] [5]
【μC/OS-II實(shí)時(shí)內(nèi)核下的A/D驅(qū)動(dòng)程序設(shè)計(jì)】相關(guān)文章:
案例驅(qū)動(dòng)在C語(yǔ)言程序設(shè)計(jì)教學(xué)中的探索實(shí)踐04-28
《C語(yǔ)言程序設(shè)計(jì)》課程教學(xué)探索04-29
《C程序設(shè)計(jì)》教學(xué)改革探討04-28
C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)的探討04-29
淺談C語(yǔ)言程序設(shè)計(jì)的教學(xué)方法04-29
51單片機(jī)C語(yǔ)言程序設(shè)計(jì)經(jīng)典案例05-01
軟件工程C語(yǔ)言程序設(shè)計(jì)初探的論文04-27
淺談《C++程序設(shè)計(jì)》課程考核方式的改革04-30
初學(xué)C語(yǔ)言程序設(shè)計(jì)的基本方法和技巧04-28
25m射電望遠(yuǎn)鏡驅(qū)動(dòng)柜實(shí)時(shí)監(jiān)視系統(tǒng)05-03