You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
620 B
28 lines
620 B
|
|
void uart_init() {
|
|
// Upper and lower bytes of the calculated prescaler value for baud.
|
|
UBRR0H = UBRRH_VALUE;
|
|
UBRR0L = UBRRL_VALUE;
|
|
|
|
// Configure data frame size to 8-bits.
|
|
UCSR0C = _BV(UCSZ01) | _BV(UCSZ00);
|
|
|
|
// Configure to enable transmitter.
|
|
UCSR0B = _BV(TXEN0);
|
|
}
|
|
|
|
void uart_putchar(char c) {
|
|
// Wait until the register to write to is free.
|
|
loop_until_bit_is_set(UCSR0A, UDRE0);
|
|
|
|
// Write the byte to the register.
|
|
UDR0 = c;
|
|
}
|
|
|
|
void uart_putstr(char *data) {
|
|
// Loop until end of string writing char by char.
|
|
while(*data){
|
|
uart_putchar(*data++);
|
|
}
|
|
}
|