#include #include "write_macro.h" #include "USART.h" //#define SEL (PORTB,0) void USART_Init(void) { UBRR0 = 12;//500k 7 set(UCSR0C, UMSEL00);//同期動作に設定 set(UCSR0C, UMSEL01);//同期動作に設定 set(UCSR0C, UCPOL0); set(UCSR0B, TXEN0); /* 送信許可*/ set(UCSR0B, RXEN0); /* 受信許可*/ } unsigned char put_get_char(unsigned char* c) { volatile unsigned char s; UDR0 = *c; /* 引数を送信 */ loop_until_bit_is_set(UCSR0A, RXC0); //UDREビットが1になるまで待つ s = UDR0; return s; } //バイト列送受信(送信バイト、バイト列の長さ、受信データ格納先) void put_get_string(unsigned char* t, int len, unsigned char* r) { int f; clear(PORTB, 0); for(f = 0; f < len; f ++)//長さ分繰り返す { *(r+f) = put_get_char(t+f);//一文字送受信 } set(PORTB, 0); for(f = 0; f <= 200; f ++); }