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/cn.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灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP