#include <stdio.h>
#include <avr/io.h>
#include <util/delay.h>
#include <util/setbaud.h>
#undef BAUD
#define BAUD 9600
#define BAUD_PRESCALE (((F_CPU/(BAUD*16UL)))-1)
static void uart_init(unsigned int ubrr) {
UBRR0H = (unsigned char)(ubrr>>8);
UBRR0L = (unsigned char)(ubrr);
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
// frame format: 8data, 2stop bit, no parity
UCSR0C = (1<<USBS0)|(3<<UCSZ00);
}
static void USART_Transmit(unsigned char data) {
PORTB ^= (1<<PB1);
loop_until_bit_is_set(UCSR0A, UDRE0);
UDR0 = data;
}
int main(void) {
uart_init(BAUD_PRESCALE);
while (1) {
unsigned char c = 0b11000001;
USART_Transmit(c);
_delay_ms(1000);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhdnIvaW8uaD4KI2luY2x1ZGUgPHV0aWwvZGVsYXkuaD4KI2luY2x1ZGUgPHV0aWwvc2V0YmF1ZC5oPgoKI3VuZGVmIEJBVUQKI2RlZmluZSBCQVVEIDk2MDAKI2RlZmluZSBCQVVEX1BSRVNDQUxFICgoKEZfQ1BVLyhCQVVEKjE2VUwpKSktMSkKCnN0YXRpYyB2b2lkIHVhcnRfaW5pdCh1bnNpZ25lZCBpbnQgdWJycikgewogICAgVUJSUjBIID0gKHVuc2lnbmVkIGNoYXIpKHVicnI+PjgpOwogICAgVUJSUjBMID0gKHVuc2lnbmVkIGNoYXIpKHVicnIpOwoKICAgIFVDU1IwQiA9ICgxPDxSWEVOMCl8KDE8PFRYRU4wKTsKCiAgICAvLyBmcmFtZSBmb3JtYXQ6IDhkYXRhLCAyc3RvcCBiaXQsIG5vIHBhcml0eQogICAgVUNTUjBDID0gKDE8PFVTQlMwKXwoMzw8VUNTWjAwKTsKfQoKc3RhdGljIHZvaWQgVVNBUlRfVHJhbnNtaXQodW5zaWduZWQgY2hhciBkYXRhKSB7CiAgICBQT1JUQiBePSAoMTw8UEIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgbG9vcF91bnRpbF9iaXRfaXNfc2V0KFVDU1IwQSwgVURSRTApOwogICAgVURSMCA9IGRhdGE7Cn0KCgppbnQgbWFpbih2b2lkKSB7CiAgICB1YXJ0X2luaXQoQkFVRF9QUkVTQ0FMRSk7CgogICAgd2hpbGUgKDEpIHsKICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSAwYjExMDAwMDAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgVVNBUlRfVHJhbnNtaXQoYyk7CiAgICAgICAgX2RlbGF5X21zKDEwMDApOwogICAgfQoKICAgIHJldHVybiAwOwogICAgfQo=