AVRStudio5でUSART(割り込み受信)
前回は送信の確認をしたので,今回は受信のテストをします.
割り込みでデータを受信できるようにします.
HWとかは前回と同じ.
#include <avr/io.h> #include <avr/interrupt.h>//割り込みを利用するので. #include <util/delay.h> #define FOSC 16000000 #define BAUD 9600 #define MYUBRR FOSC/16/BAUD-1 void port_init(void){ DDRB = 0x01; PORTB = 0x00; } void usart_init(unsigned char ubrr){ UBRR0H = (unsigned char)(ubrr>>8); UBRR0L = (unsigned char)ubrr; UCSR0B = (1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0);//割り込み受信設定 UCSR0C = (1<<USBS0)|(3<<UCSZ00); } int main(void) { char a; port_init(); usart_init(MYUBRR); sei(); while(1) { PORTB = ~PORTB; _delay_ms(1000); } } ISR(USART_RX_vect){//割り込み受信設定. if(bit_is_clear(UCSR0A,FE0)){ UDR0 = UDR0; } }
ハイパーターミナルとかで入力した値がエコーされます.