<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用于A(yíng)Tmega128的軟件UART范例程序

用于A(yíng)Tmega128的軟件UART范例程序

作者: 時(shí)間:2012-10-29 來(lái)源:網(wǎng)絡(luò ) 收藏

這段由CVAVR生成器產(chǎn)生的接口代碼是一個(gè)非常好的、高效可靠,并且值得認真學(xué)習和體會(huì )的。其特點(diǎn)如下:

l. 它采用兩個(gè)8字節的接收和發(fā)送緩沖器來(lái)提高M(jìn)CU的效率,如當主調用Putchar()發(fā)送數據時(shí),如果口不空閑,就將數據放入發(fā)送緩沖器中,MCU不必等待,可以繼續執行其它的工作。而的硬件發(fā)送完一個(gè)數據后,產(chǎn)生中斷,由中斷服務(wù)負責將發(fā)送緩沖器中數據依次送出。

2.數據緩沖器結構是一個(gè)線(xiàn)性的循環(huán)隊列,由讀、寫(xiě)和隊列計數器3個(gè)指針控制,判斷隊列是否空、溢出,以及當前數據在隊列中的位置。

3. 用編譯控制命令#pragma savereg-和#pragma savereg+,使得由CVAVR在生成的中斷服務(wù)程序中不進(jìn)行中斷保護(CVAVR生成中斷保護會(huì )將比較多的寄存器壓入堆棧中),而在中斷中嵌入匯編,只將5個(gè)在本中斷中必須要保護的寄存器壓棧。這樣提高了UART中斷處理的速度,也意味著(zhù)提高了MCU的效率。

4.由于在接口程序Putchar()、Getchar()和中斷服務(wù)程序中都要對數據緩沖器的讀、寫(xiě)和隊列計數器3個(gè)指針判斷和操作,為了防止沖突,在Putchar()、Getchar()中對3個(gè)指針操作時(shí)臨時(shí)將中斷關(guān)閉,提高了程序的可靠性。

建議讀者能逐字逐句地仔細分析該段代碼,真正理解和領(lǐng)會(huì )每一句語(yǔ)句(包括編譯控制命令的作用)的作用,從中體會(huì )和學(xué)習如何編寫(xiě)效率高,可靠性好,結構優(yōu)良的系統代碼。這段程序使用的方法和技巧,對編寫(xiě)SPI、I2C的串行通信接口程序都是非常好的借鑒。

作為現在的單片機和嵌入式系統的工程師,不僅要深入全面的掌握芯片和各種器件的性能,具備豐富的硬件設計能力;同時(shí)也必須提高的設計能力。要學(xué)習和掌握有關(guān)數據結構、操作系統、工程、網(wǎng)絡(luò )協(xié)議等方面的知識,具有設計編寫(xiě)大的復雜系統程序的能力。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 范例 程序 UART 軟件 ATmega128 用于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>