• 鹰击长空
    了解作者
  • C/C++
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 964
    下载次数
  • 2005-08-18 05:51
    上传日期
AVR单片机atmega16串口中断接收和发送程序。接收到字符后再发送出去。
atmega16串口收发程序.rar
  • atmega16串口收发程序.c
    1.3KB
  • www.pudn.com.txt
    218B
内容介绍
// Target : M16 // Crystal: 8.0000Mhz #include <iom16v.h> #include <macros.h> unsigned char com_in_buf[1]; void port_init(void) { PORTA = 0xFF; DDRA = 0xFF; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; DDRC = 0x00; PORTD = 0x00; DDRD = 0x00; } //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9615 (0.2%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x00; UCSRC = BIT(URSEL) | 0x06; UBRRL = 0x33; //set baud rate lo UBRRH = 0x00; //set baud rate hi UCSRB = 0x98; } void send_data(unsigned char back) { while( !( UCSRA & (1<<UDRE)) ) ; UDR=back; } #pragma interrupt_handler uart0_rx_isr:12 void uart0_rx_isr(void) { //uart has received a character in UDR com_in_buf[0]=UDR; send_data(com_in_buf[0]); } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); uart0_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x00; //timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } void main(void) { char j; init_devices(); while(1) { for(j=1;j<100;j++) ; } }
评论
    相关推荐