日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 在嵌入式軟件開(kāi)發(fā)中,比如單片機(jī)的程序,我們一定會(huì)寫(xiě)到一個(gè)大的死循環(huán)的程序,也就是輪詢IO口,通常用while(1){}來(lái)實(shí)現(xiàn)大循環(huán),程序就會(huì)在while(1)中不斷的循環(huán)執(zhí)行一些任務(wù),但是,任務(wù)與任務(wù)之間如果存在延時(shí),就

 在嵌入式軟件開(kāi)發(fā)中,比如單片機(jī)的程序,我們一定會(huì)寫(xiě)到一個(gè)大的死循環(huán)的程序,也就是輪詢IO口,通常用

while(1)

{

}

來(lái)實(shí)現(xiàn)大循環(huán),程序就會(huì)在while(1)中不斷的循環(huán)執(zhí)行一些任務(wù),但是,任務(wù)與任務(wù)之間如果存在延時(shí),就會(huì)大大的削弱整個(gè)架構(gòu)的實(shí)時(shí)性,雖然現(xiàn)在的高級(jí)單片機(jī)ARM已經(jīng)具有了多線程的機(jī)制,但是避免不了的依然是要寫(xiě)死循環(huán),也就是說(shuō),表面上看到程序是一起在跑的,其實(shí)是把時(shí)間切成若干份,然后進(jìn)行調(diào)度,在linux內(nèi)核中,fork一條進(jìn)程需要調(diào)度,do_thread也需要進(jìn)行調(diào)度。

最近在工作上遇到一個(gè)這樣的問(wèn)題,串口協(xié)議要求比如等到IO口為低電平,數(shù)據(jù)才能發(fā)送。關(guān)于這個(gè)問(wèn)題,沒(méi)別的方法,按照那個(gè)架構(gòu)來(lái)說(shuō)只能死等while(等到IO口低電平輸出),但是這樣就會(huì)遇到一個(gè)問(wèn)題,如果一直死等,萬(wàn)一IO沒(méi)有低電平輸出,那么就會(huì)發(fā)生丟包的可能以及其他任務(wù)會(huì)被直接影響到運(yùn)行,畢竟單片機(jī)一般采用的架構(gòu)都是順序執(zhí)行的,但是看到有工程師做這樣的處理,我也就學(xué)過(guò)來(lái)了,讓while做超時(shí)處理,一旦在一定的時(shí)間內(nèi)等待不到低電平輸出,那么就讓這個(gè)循環(huán)退出,這樣就不會(huì)影響到其它任務(wù)的執(zhí)行了,也降低了丟包了,但還是會(huì)有丟包,只能慢慢調(diào)試了,要是有高手看到麻煩教我一下,最近我們公司也是因?yàn)檫@個(gè)問(wèn)題卡了很久,表示傷不起,我們來(lái)看一下是怎么實(shí)現(xiàn)的。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉