在單片機(jī)裸機(jī)的編程方法中,狀態(tài)機(jī)的方法是比較好的,經(jīng)典的比如按鍵的檢測(cè)判斷等。
其實(shí)有很多地方可以使用這種思想。比如傳感器的數(shù)據(jù)采集,因?yàn)閱纹瑱C(jī)不可能一直等待著運(yùn)行,那樣的效率是很低的,通常都是結(jié)合fsm + timer的方式來提高CPU的使用率
一、傳感器中使用fsm的方法。
大家都知道,ds18b20的采集是比較慢的,發(fā)送轉(zhuǎn)換指令后,最慢需要等待720ms,這個(gè)時(shí)間有點(diǎn)太長(zhǎng)了。簡(jiǎn)直不能忍受。
如下所示:我采用了11bit分辨率,0.125的分辨率足夠了,作為溫度參考而已。
The resolution of the temperature sensor is user - configurable to 9, 10, 11, or 12 bits, corresponding to increments of 0.5°C, 0.25°C, 0.125°C, and 0.0625°C, respectively.
Temperature Conversion Time t CONV
9 - bit resolution 93.75 ms 0.5
10 - bit resolution 187.5 0.25
11 - bit resolution 375 0.125
12 - bit resolution 750 0.0625
那么我肯定不是死等的,死等,多浪費(fèi)cpu,效率太低了,實(shí)際工作中根本無法接受。
因此,做了一個(gè)狀態(tài)機(jī):
int main(int argc, char const *argv[])
{
while(1)
{
ds18b20_discope();
}
return 0;
}
void ds18b20_discope(void)
{
switch (ds18b20的狀態(tài)機(jī)的全局變量)
{
case 發(fā)送命令:
發(fā)送轉(zhuǎn)換命令
賦值到等待裝態(tài)
break;
case 等待裝態(tài):
判斷是否有超時(shí),
如果有超時(shí),則:讀取,計(jì)數(shù)器清零,并回到發(fā)送命令狀態(tài)
否則,do nothing
break;
default:
break;
}
}
定時(shí)器的基準(zhǔn)中斷可以自己細(xì)化,我是50ms一個(gè)中斷
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
如果ds18b20已經(jīng)處于等待狀態(tài),
則計(jì)數(shù)++
}
這樣就是一個(gè)簡(jiǎn)單的傳感器定時(shí)采樣的狀態(tài)機(jī)思路,不會(huì)死等,效率較高,而且穩(wěn)定。
注意ds18b20的時(shí)序性比較嚴(yán)格,網(wǎng)上說不能被打斷的,但是后來移植到freertos中,也是可以的,溫度采樣還算穩(wěn)定,但是考慮到后續(xù)程序比較大,該框架有點(diǎn)費(fèi)時(shí)間,因此還是裸機(jī)了,狀態(tài)機(jī)的思路基本能解決。
上一篇:單片機(jī)提高ADC精度總結(jié)
下一篇:Secure Thingz宣布支持瑞薩的TSIP技術(shù)
推薦閱讀
史海拾趣
在快速發(fā)展的過程中,Bipolarics Inc始終重視人才培養(yǎng)和團(tuán)隊(duì)建設(shè)。公司注重從高校和研究機(jī)構(gòu)引進(jìn)優(yōu)秀人才,同時(shí)加強(qiáng)內(nèi)部員工的培訓(xùn)和晉升機(jī)制。通過打造一支高效、專業(yè)的團(tuán)隊(duì),Bipolarics Inc在技術(shù)研發(fā)、市場(chǎng)營(yíng)銷等方面取得了顯著成績(jī)。此外,公司還積極營(yíng)造良好的企業(yè)文化氛圍,激發(fā)員工的創(chuàng)新精神和團(tuán)隊(duì)凝聚力。
Dexter始終將技術(shù)創(chuàng)新作為企業(yè)發(fā)展的核心動(dòng)力。公司不斷投入研發(fā)資源,推動(dòng)傳感器技術(shù)的創(chuàng)新和發(fā)展。通過與高校、研究機(jī)構(gòu)的合作,Dexter成功引入了多項(xiàng)新技術(shù)、新材料,并將其應(yīng)用于產(chǎn)品中。這些創(chuàng)新產(chǎn)品不僅提高了傳感器的性能和精度,還拓展了其應(yīng)用領(lǐng)域。Dexter的創(chuàng)新精神引領(lǐng)了行業(yè)的發(fā)展方向,使其成為了行業(yè)的佼佼者。
20世紀(jì)70年代,ERNI開始實(shí)施全球化戰(zhàn)略。他們意識(shí)到,只有不斷擴(kuò)大市場(chǎng)份額,才能確保公司的長(zhǎng)期穩(wěn)定發(fā)展。因此,ERNI開始在歐洲、北美和亞洲等地設(shè)立銷售處和生產(chǎn)基地,為全球客戶提供創(chuàng)新且高品質(zhì)的產(chǎn)品。這一戰(zhàn)略的實(shí)施,不僅使ERNI的銷售額大幅增長(zhǎng),還進(jìn)一步鞏固了其在全球連接器市場(chǎng)的領(lǐng)先地位。
ACP Optoelectronic Technology Co Ltd始終堅(jiān)持創(chuàng)新驅(qū)動(dòng)的發(fā)展理念。公司不斷投入研發(fā)資金,引進(jìn)先進(jìn)設(shè)備和技術(shù)人才,推動(dòng)產(chǎn)品升級(jí)換代。隨著市場(chǎng)的不斷變化和客戶需求的不斷提升,ACP Optoelectronic Technology Co Ltd的產(chǎn)品線不斷豐富和完善,產(chǎn)品質(zhì)量和性能也得到了顯著提升。
智烽維(CDA)于2007年成立,專注于超級(jí)電容器(法拉電容)的研發(fā)和生產(chǎn)。在創(chuàng)立初期,公司面臨著資金短缺、技術(shù)挑戰(zhàn)和市場(chǎng)認(rèn)知度低等多重困難。然而,憑借對(duì)技術(shù)的執(zhí)著追求和對(duì)市場(chǎng)的敏銳洞察,智烽維成功推出了卷繞型超級(jí)電容器產(chǎn)品,并逐漸在市場(chǎng)上建立起了一定的知名度。
1996年,ebm-papst獨(dú)資的中國(guó)子公司(依必安派特)正式成立,標(biāo)志著公司正式進(jìn)入中國(guó)市場(chǎng)。當(dāng)時(shí),中國(guó)市場(chǎng)正處于經(jīng)濟(jì)快速增長(zhǎng)的階段,ebm-papst看準(zhǔn)這一機(jī)遇,決定加大在中國(guó)的投入。除了在上海設(shè)立總部外,公司還在北京、西安、深圳等地建立了分公司或辦事機(jī)構(gòu),形成了覆蓋全國(guó)的銷售網(wǎng)絡(luò)。這一戰(zhàn)略布局使得ebm-papst能夠迅速適應(yīng)中國(guó)市場(chǎng)的需求,并為其在中國(guó)市場(chǎng)的快速發(fā)展奠定了基礎(chǔ)。
您一定玩過電子游戲機(jī);使用過手電筒。如果讓您親手制作這些電子作品,您一定會(huì)感到很興奮,很有趣。其實(shí)您只要花上幾元錢,買幾個(gè)電子元件,就可以通過自己的努力在幾個(gè)小時(shí)內(nèi)創(chuàng)造出自己的電子作品。通過一個(gè)小小電子產(chǎn)品的制作,不僅證明了您的智慧 ...… 查看全部問答∨ |
WinCE5.0的一個(gè)EDB應(yīng)用程序Debug版可以運(yùn)行Release版就是老出錯(cuò) 如題: WinCE5.0的一個(gè)EDB應(yīng)用程序Debug版可以運(yùn)行Release版就是老出錯(cuò), 痛苦啊! 而且EDB容量還是比較小的,這是煩死了 … 查看全部問答∨ |
各位老師好,我是惠州的小肖。^_^平時(shí)有空就搞一下單片機(jī)。。對(duì)單片機(jī)這一塊我就一菜鳥。。這不我照著李學(xué)海老師的書上我測(cè)試了一串口通信程序。李學(xué)海老師寫的串口程序是用的匯編語言。。我試著把這程序用C語言改寫。。可就是不能實(shí)現(xiàn)同樣的功能( ...… 查看全部問答∨ |
我是一個(gè)剛剛到公司實(shí)習(xí)的新手,由于之前沒有學(xué)過wince有關(guān)的開發(fā),所以想請(qǐng)大蝦們幫忙,我有幾個(gè)問題: 1.開發(fā)wince項(xiàng)目需要什么開發(fā)工具,什么開發(fā)工具是通用的 2.教我如何編寫第一個(gè)wince程序 3.我需要重點(diǎn)學(xué)習(xí)wince的哪個(gè)部分 重重有賞啊各 ...… 查看全部問答∨ |
一個(gè)基于DDS的可移相雙通道任意波形發(fā)生器的設(shè)計(jì),可以出波形,我給的鎖相環(huán)的頻率是100MHz,按理論上來說,輸出頻率應(yīng)該可以達(dá)到0.4*100MHz=40MHz,但是實(shí)際出的波形的頻率卻只有大概20MHz。我想請(qǐng)問各位大俠利用流水線設(shè)計(jì)的相位累加器可以提高輸 ...… 查看全部問答∨ |
|
請(qǐng)問F28335中的16路12bitAD是指可以同時(shí)對(duì)16路不同的模擬信號(hào)進(jìn)行采樣嗎? [ 本貼由 xiancheng_2005 于 2008-5-11 02:53 PM 最后編輯 ]… 查看全部問答∨ |
|
技術(shù)宅自制巨型A380遙控飛機(jī) 試飛視頻竄紅 對(duì)于航空迷來說,這個(gè)視頻絕對(duì)俘虜了他們的心。該視頻YouTube點(diǎn)擊已超過270萬次數(shù)據(jù)還在上漲當(dāng)中。該A380飛模長(zhǎng)約4.82米,側(cè)翼長(zhǎng)約為5.3米,重約70.8千克,飛機(jī)裝配10升左右燃油,每分鐘燃油1升左右,由四個(gè)Jetcat渦輪發(fā)動(dòng)機(jī)驅(qū)動(dòng)起飛 $(\'swf_XO8\ ...… 查看全部問答∨ |
在電源問題中經(jīng)常有人問起紋波和噪聲上的問題,從牛人寫的電源的書中也能找出一些二者的差異,實(shí)際測(cè)試中其實(shí)也能發(fā)現(xiàn)有所不同。輸出紋波和輸出電流和輸出電壓都有關(guān)系,主要是與電流的關(guān)系。通常輸出紋波近似等于輸出電流 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 全主動(dòng)懸架國(guó)產(chǎn)化落地,未來也能“人人買得起”?
- 第三方激光雷達(dá)ASIC方案,能改變行業(yè)格局嗎?
- 為何端到端成為各車企智駕布局的首要選擇?
- 智能網(wǎng)聯(lián)汽車組合駕駛輔助系統(tǒng)安全要求立項(xiàng)制定,東風(fēng)、華為等參與起草
- 從高精地圖到VLA,一場(chǎng)技術(shù)路線的競(jìng)速
- 韓國(guó)團(tuán)隊(duì)開發(fā)自動(dòng)駕駛軟件 透明障礙物識(shí)別準(zhǔn)確率達(dá)96%
- OpenGMSL?聯(lián)盟宣告成立 推動(dòng)未來車載連接技術(shù)變革
- 高通完成對(duì)V2X芯片企業(yè)Autotalks收購,強(qiáng)化車聯(lián)網(wǎng)通信
- “磷酸鐵鋰需求激增,寧德時(shí)代等電池巨頭鎖定未來五年大單”
- 面壁智能端側(cè)大模型首日上線,英特爾工程師聯(lián)合優(yōu)化實(shí)現(xiàn)2.2倍推理效率躍升
- 下資料 看視頻 抽大獎(jiǎng)!泰克汽車電子測(cè)試解決方案
- 發(fā)帖贏好禮 | MPS 工程師為您解決DC-DC設(shè)計(jì)難題
- 免費(fèi)體驗(yàn)業(yè)界最快編譯速度&最好性能 Quartus II v15.0網(wǎng)頁版下載有禮!
- 英飛凌BMS解決方案,為電動(dòng)汽車和儲(chǔ)能系統(tǒng)保駕護(hù)航!
- 已結(jié)束|Maxim IO-Link通信協(xié)議設(shè)計(jì)方案詳解,5大優(yōu)勢(shì)助你輕松聯(lián)網(wǎng)!
- 下載有禮:數(shù)據(jù)中心養(yǎng)生秘籍《福祿克數(shù)據(jù)中心解決方案》等你帶回家!
- 閱讀并了解是德科技汽車電子、物聯(lián)網(wǎng)(IOT) 精彩專題,答題贏好禮!
- 免費(fèi)申請(qǐng)測(cè)評(píng):超小型 Linux 開發(fā)套件:Quantum Tiny Linux(帶 SoM 和擴(kuò)展板)
- 趙軼苗:從模擬到現(xiàn)實(shí),ADI如何超越摩爾定律
- 蘋果園區(qū)又生變?或?qū)⒎艞壉笨_萊納州
- 全球最大社交網(wǎng)絡(luò)企Facebook遭遇盜竊事件
- 嵌入式模擬智能使機(jī)器人自主性達(dá)到新高度
- 共享充電樁是否將成未來電動(dòng)汽車的發(fā)展趨勢(shì)?
- 毫米波應(yīng)用,毫米波雷達(dá)技術(shù)再探討,超詳細(xì)
- 研華首款 8TB 寬溫 SATA SSD,實(shí)現(xiàn)更快更可靠的連接
- Molex天線與遠(yuǎn)程控制單元提高汽車網(wǎng)路連接性能
- 加速5G商用,華虹宏力8+12特色工藝平臺(tái)為智能時(shí)代添彩
- 技術(shù)文章—可穿戴設(shè)備的安全性管理