国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

用于ATmega128的軟件UART范例程序

發布時間:2010-8-6 14:27    發布者:lavida
關鍵詞: ATmega128 , UART , 范例程序 , 軟件
一般教科書上提供的UART收發的程序往往是一段采用輪循(Polling)方式完成收發的簡單代碼。但對于高速的AVR來講,采用這種方式大大降低了 MUC的效率。在使用AVR時,應根據芯片本身的特點(片內大容量數據存儲器RAM,更適合采用高級語言編寫系統程序),編寫高效可靠的UART收發接口(低層)程序。下面是一個典型的ATmega128的軟件USART的接口程序。

#include
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1

// Declare your global variables here
void main(void)
{
// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: On
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud rate: 9600
UCSR0A=0x00;
UCSR0B=0xD8;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x67;

// Global enable interrupts
#asm("sei")

while (1)
{
// Place your code here

};
}

這段由CVAVR程序生成器產生的UART接口代碼是一個非常好的、高效可靠,并且值得認真學習和體會的。其特點如下:

1. 它采用兩個8字節的接收和發送緩沖器來提高MCU的效率,如當主程序調用Putchar()發送數據時,如果UART口不空閑,就將數據放入發送緩沖器中,MCU不必等待,可以繼續執行其它的工作。而UART的硬件發送完一個數據后,產生中斷,由中斷服務程序負責將發送緩沖器中數據依次送出。

2.數據緩沖器結構是一個線性的循環隊列,由讀、寫和隊列計數器3個指針控制,用于判斷隊列是否空、溢出,以及當前數據在隊列中的位置。

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

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

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

作為現在的單片機嵌入式系統的工程師,不僅要深入全面的掌握芯片和各種器件的性能,具備豐富的硬件設計能力;同時也必須提高軟件的設計能力。要學習和掌握有關數據結構、操作系統、軟件工程、網絡協議等方面的知識,具有設計編寫大的復雜系統程序的能力。
本文地址:http://www.qingdxww.cn/thread-19767-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Chiptorials——如何使用ATECC608 TrustFLEX實現公鑰輪換
  • FPGA設計流程培訓教程
  • Chiptorials ——使用ATECC608 TrustFLEX實現基本非對稱身份驗證
  • 無線充電基礎知識及應用培訓教程
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女视频永久黄网站免费观看国产 | 色男人社区 | 欧美精品免费在线观看 | 嫩草成人影院 | 失乐园日本电视剧第1集第8 | 在线免费观看麻豆 | 朝鲜妇女特级毛片 | 欧美一级视频在线高清观看 | 国产麻豆视频 | 精品久久久久久久九九九精品 | 国产精品公开免费视频 | 正在播放淫亚洲 | 国产麻豆精品免费视频 | 日本www免费 | www日本在线观看 | 婷婷综合网站 | 欧美三级一区二区三区 | 亚洲天堂影院在线观看 | 欧美 日韩 国产在线 | 日本在线视频www色 日本在线色 | 天天干天天操天天透 | 黑粗硬大欧美视频 | 成人动漫在线观看网站 | 欧美三级免费观看 | 国内精品99 | 午夜影院污 | 免费日韩一级片 | 女人18一级毛片免费观看 | 亚洲天堂男人 | 九九热精品视频在线播放 | 日韩久久精品一区二区三区 | 亚洲一级毛片免观看 | 韩国视频一区二区 | 四虎最新免费观看网址 | 91视频官网 | 久久2017| 在线天堂网| 欧美日韩高清观看一区二区 | 国产精品自拍第一页 | 麻豆视频国产 | 农奴完整版在线观看 |