久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 單片機學習 > 單片機教程 > 單片機培訓(xun)編程需要(yao)注意(yi)什(shen)么?

單片機培訓(xun)編程需要注意什么? 時間:2019-03-27      來(lai)源(yuan):華清遠見(jian)

對于嵌入式開發的流程單片機編程也是必須需要學習的,很多初學者在學習到這一環節的時候會感覺到非常的頭疼。通常來說單片機開發的入門還是比較難的,那么單片機培訓編程需要注意些什(shen)么(me)呢?下(xia)面就給大(da)家(jia)介紹一下(xia),希望(wang)可以幫助到大(da)家(jia)。

為(wei)什(shen)么很多(duo)初學者覺得(de)單片(pian)(pian)機(ji)開發(fa)學習比(bi)較難呢?主(zhu)要(yao)就是(shi)需要(yao)匯編(bian)或(huo)者C語言進行(xing)編(bian)寫,這是(shi)屬于比(bi)較底層的東西。其(qi)中(zhong)有個(ge)名詞叫中(zhong)斷(duan),中(zhong)斷(duan)分為(wei)外部中(zhong)斷(duan)與內部中(zhong)斷(duan),外部中(zhong)斷(duan)來(lai)說(shuo)屬于應用層面(mian)比(bi)較簡單,但是(shi)內部中(zhong)斷(duan)就要(yao)復雜的多(duo)了。內部中(zhong)斷(duan)主(zhu)要(yao)是(shi)發(fa)生重啟,總(zong)線出(chu)錯、溢出(chu)、校驗出(chu)錯等情況。一旦出(chu)現就會發(fa)生知名的錯誤。那么單片(pian)(pian)機(ji)培(pei)訓編(bian)程(cheng)要(yao)注意什(shen)么:

1.延時

學習(xi)嵌入(ru)式(shi)編(bian)程經(jing)常會涉(she)及(ji)到硬件(jian)的(de)操作,如ADC,打開或者關閉一個電流源,這些(xie)都是需(xu)要時間(jian)的(de),因(yin)此當(dang)在發出這些(xie)指令的(de)時候立即讀(du)取(qu)寄存器的(de)值是得不到想要的(de)結果的(de),而且還找不出原因(yin),有時候需(xu)要的(de)延時還比(bi)較長,達(da)到ms級(ji),一般情況(kuang)下us級(ji)就夠了,根(gen)據各芯片的(de)時鐘(zhong)頻率(lv)而定,不單指MCU的(de)總線時鐘(zhong)頻率(lv)。

2.變量

不建議將所(suo)有變量(liang)都定義成全局變量(liang),這樣(yang)管理(li)起來比較麻(ma)煩(fan),程序一(yi)(yi)旦出錯,破壞(huai)性也(ye)比較大,函(han)數也(ye)是如(ru)此,全局變量(liang)和通用函(han)數一(yi)(yi)定要(yao)申明,這樣(yang)在調用的(de)(de)時候不容易出錯,而且有些編譯器對(dui)于未申明的(de)(de)函(han)數是不會報錯的(de)(de),但在調用的(de)(de)時候又會發(fa)出類(lei)型隱含轉(zhuan)換的(de)(de)警告,在這里就(jiu)不舉(ju)例子(zi)了,總(zong)之這點要(yao)特別(bie)小心。

單片機培訓,單片機開發

3.宏定義

在(zai)(zai)程序編(bian)寫過程對于一(yi)些特定(ding)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)字應(ying)該盡量使用宏(hong)(hong)(hong)定(ding)義(yi)(yi),這樣做有(you)個好處就是(shi)(shi)比較直觀(guan),要不(bu)(bu)然(ran)時(shi)(shi)間久了(le)(le)看到那個數(shu)(shu)(shu)字根本就想不(bu)(bu)起它代表(biao)什么意思,宏(hong)(hong)(hong)定(ding)義(yi)(yi)并不(bu)(bu)會給程序帶來任何(he)負擔,因(yin)(yin)為它在(zai)(zai)編(bian)譯的(de)(de)(de)(de)(de)(de)時(shi)(shi)候(hou)就已經(jing)全部替代了(le)(le),所以(yi)盡可(ke)以(yi)廣而用之。值得一(yi)提(ti)的(de)(de)(de)(de)(de)(de)是(shi)(shi)宏(hong)(hong)(hong)定(ding)義(yi)(yi)并不(bu)(bu)局限于使用常(chang)量,它可(ke)以(yi)定(ding)義(yi)(yi)函(han)(han)數(shu)(shu)(shu),因(yin)(yin)為它是(shi)(shi)直接替換(huan),因(yin)(yin)此避免了(le)(le)入棧和出棧,提(ti)高(gao)了(le)(le)程序執行的(de)(de)(de)(de)(de)(de)效率,但是(shi)(shi)同時(shi)(shi)增加(jia)了(le)(le)代碼量,因(yin)(yin)此一(yi)般用比較簡單的(de)(de)(de)(de)(de)(de)函(han)(han)數(shu)(shu)(shu),它還有(you)一(yi)個缺(que)點是(shi)(shi)在(zai)(zai)替換(huan)的(de)(de)(de)(de)(de)(de)過程不(bu)(bu)檢查(cha)參(can)數(shu)(shu)(shu)類型是(shi)(shi)否正常(chang),從而增加(jia)了(le)(le)安全隱患(huan),解決此問題(ti)的(de)(de)(de)(de)(de)(de)方法是(shi)(shi)使用一(yi)個稱之為inline的(de)(de)(de)(de)(de)(de)內聯函(han)(han)數(shu)(shu)(shu),它繼承了(le)(le)宏(hong)(hong)(hong)定(ding)義(yi)(yi)的(de)(de)(de)(de)(de)(de)優點,又彌補了(le)(le)它的(de)(de)(de)(de)(de)(de)缺(que)點,是(shi)(shi)個最佳的(de)(de)(de)(de)(de)(de)選擇(ze)。

大(da)(da)多數(shu)低檔(dang)次的(de)(de)單片機(ji)都是(shi)(shi)不支(zhi)持浮點運(yun)(yun)(yun)(yun)算(suan)(suan)的(de)(de),因(yin)此(ci)在實際使用(yong)(yong)過程中也(ye)很(hen)少用(yong)(yong)到(dao),因(yin)此(ci)為(wei)(wei)了(le)降低成(cheng)本,一(yi)(yi)般(ban)(ban)都去掉(diao)了(le)浮點運(yun)(yun)(yun)(yun)算(suan)(suan)模塊,這(zhe)(zhe)就帶來(lai)了(le)一(yi)(yi)個(ge)問題(ti),如(ru)果(guo)萬(wan)一(yi)(yi)要用(yong)(yong)到(dao)浮點運(yun)(yun)(yun)(yun)算(suan)(suan)怎么辦?其(qi)實即(ji)使不具(ju)有浮點運(yun)(yun)(yun)(yun)算(suan)(suan)的(de)(de)單片機(ji)在仿真調試過程依然(ran)可(ke)(ke)以(yi)(yi)(yi)使用(yong)(yong)float or double的(de)(de)數(shu)據(ju)(ju)類型(xing)進(jin)行計算(suan)(suan),而(er)且結果(guo)也(ye)很(hen)準(zhun)確(que),這(zhe)(zhe)是(shi)(shi)為(wei)(wei)什么呢(ni)?這(zhe)(zhe)個(ge)因(yin)為(wei)(wei)編譯(yi)器自動(dong)調用(yong)(yong)了(le)庫函數(shu)來(lai)實現(xian)的(de)(de),一(yi)(yi)般(ban)(ban)是(shi)(shi)通(tong)過迭代的(de)(de)方法(fa),因(yin)此(ci)它的(de)(de)執行效率非(fei)常(chang)慢,不建議采用(yong)(yong)此(ci)方法(fa),而(er)通(tong)常(chang)采用(yong)(yong)的(de)(de)是(shi)(shi)“定點”的(de)(de)方法(fa)來(lai)解決這(zhe)(zhe)個(ge)問題(ti),比如(ru)說一(yi)(yi)個(ge)32bit的(de)(de)數(shu)據(ju)(ju),可(ke)(ke)以(yi)(yi)(yi)假(jia)定它的(de)(de)低8位(wei)是(shi)(shi)小數(shu)位(wei),然(ran)后移位(wei)計算(suan)(suan),類似(si)于(yu)整數(shu)運(yun)(yun)(yun)(yun)算(suan)(suan),這(zhe)(zhe)種方法(fa)比較復雜,但(dan)是(shi)(shi)可(ke)(ke)以(yi)(yi)(yi)非(fei)常(chang)精(jing)確(que),還有一(yi)(yi)種方法(fa)就是(shi)(shi)直接放大(da)(da)10的(de)(de)N次方倍(bei)進(jin)行整數(shu)的(de)(de)計算(suan)(suan),可(ke)(ke)以(yi)(yi)(yi)得出近似(si)值(zhi),因(yin)此(ci)為(wei)(wei)了(le)不增加不必要的(de)(de)麻煩,應該總是(shi)(shi)盡(jin)量避免使用(yong)(yong)浮點運(yun)(yun)(yun)(yun)算(suan)(suan),一(yi)(yi)般(ban)(ban)情(qing)況(kuang)也(ye)都是(shi)(shi)可(ke)(ke)以(yi)(yi)(yi)避免的(de)(de)。

4.watch dog

以三(san)重watch dog為(wei)例(li),watch dog1檢查時鐘頻率,watch dog2監(jian)視一(yi)小(xiao)段代(dai)碼(ma),它必(bi)須在一(yi)個比(bi)(bi)較短的(de)時間(jian)里喂(wei)一(yi)次,一(yi)般要求(qiu)在250us到650us之間(jian)喂(wei)一(yi)次,watch dog3監(jian)視一(yi)大(da)段代(dai)碼(ma),要求(qiu)在比(bi)(bi)較長的(de)時間(jian)內喂(wei)一(yi)次,一(yi)般是100ms以內,三(san)個條件必(bi)須同時滿足才行,這要求(qiu)對代(dai)碼(ma)的(de)執行過程非常(chang)清楚。

這里(li)需要(yao)向大(da)家強調的是(shi),在單片機嵌入式的編程過程中程序的好壞往往是(shi)由細(xi)節決定的,一個程序寫的是(shi)否詳細(xi)、靈活,是(shi)與日積月累的知識積累與實際磨練成(cheng)正比(bi)的。

如需其它單片機培訓開發的相關知識,請登錄華清遠見嵌入式開發培訓(xun)官網進行了解。

上一篇:初學者如何學習單片機?單片機培訓靠譜嗎?

下一篇:初學者如何學習單片機開發?這些建議要get!

熱(re)點(dian)文章(zhang)推薦
華(hua)清(qing)學員(yuan)就(jiu)業(ye)榜單
高薪學(xue)員經驗分(fen)享
熱點(dian)新聞推薦(jian)
前臺(tai)專線(xian):010-82525158 企業培訓洽談專線(xian):010-82525379 院校合作洽談(tan)專(zhuan)線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部