ASM 板


LINE

看板 ASM  RSS
//F_CPU 7.327Mhz //IDE: avrstudio418setup.exe //complier: WinAVR-20100110-install.exe #include <avr/io.h> #include <avr/interrupt.h> #include <avr/wdt.h> #include "global.h" #include <stdio.h> #define UART0_DEFAULT_BAUD_RATE 9600 ///< default baud rate for UART0 #define UART1_DEFAULT_BAUD_RATE 9600 ///< default baud rate for UART1 //Timerout Count use TCC1 #define TimerReg TCCR1A #define TimerCountReg TCNT1 #define DisableTimerOut TCCR1B &= ~BV(CS32) | ~BV(CS31) | ~BV(CS30) // Clk/256 7.372MHz/1024 => #define EnableTimerOut \ do{ \ TCCR1B |= (1 << CS12) | (1 << CS10); \ TCNT1 = 0;\ }while(0); #define TimeOut (TCNT1 > 2160) #ifndef RXCIE #define RXCIE RXCIE0 #define TXCIE TXCIE0 #define UDRIE UDRIE0 #define RXEN RXEN0 #define TXEN TXEN0 #define CHR9 CHR90 #define RXB8 RXB80 #define TXB8 TXB80 #endif #ifndef UBRR0L #define UBRR0L UBRR0 #define UBRR1L UBRR1 #endif //RX interrupt-> RX Get Data-> Data to Tx Send int main(void) { MCUCSR = 0; uart0Init(UART0_DEFAULT_BAUD_RATE); uart1Init(UART1_DEFAULT_BAUD_RATE); sei(); //enable global interrupt while(1) { wdt_reset(); //your program { } } } void uart0Init(unsigned long baudrate) { PORTE |= (1 << PORTE1) | (1 << PORTE0) ; uartSetBaudRate(0, baudrate); //outb(UCSR0B, BV(RXCIE0)|BV(TXCIE0)|BV(RXEN0)|BV(TXEN0)); outb(UCSR0B, BV(RXCIE0)|BV(RXEN0)|BV(TXEN0)); //sei(); } void uart1Init(unsigned long baudrate) { PORTD |= (1 << PORTD3) | (1 << PORTD2) ; uartSetBaudRate(1, baudrate); //outb(UCSR0B, BV(RXCIE0)|BV(TXCIE0)|BV(RXEN0)|BV(TXEN0)); outb(UCSR1B, BV(RXCIE1)|BV(RXEN1)|BV(TXEN1)); //sei(); } void uartSetBaudRate(unsigned char uart_sel, unsigned long baudrate) { // calculate division factor for requested baud rate, and set it unsigned int bauddiv = ((F_CPU+(baudrate*8L))/(baudrate*16L)-1); if(uart_sel) { outb(UBRR1L, bauddiv); #ifdef UBRR1H outb(UBRR1H, bauddiv>>8); #endif } else { outb(UBRR0L, bauddiv); #ifdef UBRR0H outb(UBRR0H, bauddiv>>8); #endif } } //uart_sel = 0 use uart0, uart_sel = 1 use uart1 void uartSendByte(unsigned char uart_sel, unsigned char txData) { if(uart_sel) { while(!(UCSR1A & (1<<UDRE))); outb(UDR1, txData); } else { while(!(UCSR0A & (1<<UDRE))); outb(UDR0, txData); } } unsigned char uartReceiveByte(unsigned char uart_sel) { TimerCountReg = 0; EnableTimerOut; if(uart_sel == 0) { while(!(UCSR0A & (1<<RXC0))) { if(TimeOut){ break; } } DisableTimerOut; return UDR0; } else { while(!(UCSR1A & (1<<RXC1))) { if(TimeOut){ break; } } DisableTimerOut; return UDR1; } } //UART0 RX reevied ISR vector ISR(USART0_RX_vect) { cli(); wdt_reset(); UCSR0B &= ~(1 << RXCIE0); //Disable UART0 RX intperrupt. uartSendByte(0, uartReceiveByte(0)); UCSR0B |= (1 << RXCIE0); //Enable UART0 RX intperrupt. wdt_reset(); sei(); } //UART1(Ethernet) RX reevied ISR vector ISR(USART1_RX_vect) { cli(); wdt_reset(); UCSR1B &= ~(1 << RXCIE1); //Disable UART1 RX intperrupt. uartSendByte(1, uartReceiveByte(1)); UCSR1B |= (1 << RXCIE1); //Enable UART1 RX intperrupt. wdt_reset(); sei(); } 程式不保證會動..因為就是從以前寫的程式剪下貼上組合出來的。 簡單使用ISR,未使用FIFO與OS概念。 其他相關請自行google網路,AVR的論壇很講解 http://www.avrfreaks.net/ 因為台灣使用AVR的不算多,所以相關資料大多數為英文與簡體(大陸一堆人再用) --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.109.151
※ 文章網址: https://webptt.com/m.aspx?n=bbs/ASM/M.1425480509.A.DC2.html
1F:→ wefe185: 可以留個E-mail連絡嗎?? 感謝大大 寄站內信給我 03/05 13:16







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP