59#include <avr/interrupt.h>
60#include <avr/pgmspace.h>
65#define PRINTF_P(format, ...) printf_P(PSTR(format), ## __VA_ARGS__)
67#define UART0_BAUD 115200ul
68#define UART0_UBBR_VAL ((F_CPU / (UART0_BAUD * 16)) - 1)
73 UBRR0 = UART0_UBBR_VAL;
75 UCSR0C = (0 << USBS0) | (1 << UCSZ01) | (1 << UCSZ00);
77 UCSR0B = (1 << RXEN0) | (1 << TXEN0);
80int uart_putchar(
char data, FILE *stream)
85 uart_putchar(
'\r', stream);
88 while((UCSR0A & (1 << UDRE0)) == 0) {;}
96FILE uart_stream = FDEV_SETUP_STREAM(uart_putchar,
NULL, _FDEV_SETUP_WRITE);
98uint8_t ee_read_byte(uint16_t adr)
108void ee_write_byte(uint16_t adr, uint8_t data)
113 EECR &= ~((1 << EEPM1) | (1 << EEPM0));
123 EECR |= (1 << EEMPE);
128 while(EECR & (1 << EEPE)) {;}
139 stdout = &uart_stream;
141 PRINTF_P(
"\nEEPROM Tutorial\n");
144 ee_write_byte(0x000C, 0xAB);
146 data = ee_read_byte(0x000C);
148 PRINTF_P(
"EEPROM value at adr 0x000C is 0x%02X\n", data);
void px_board_init(void)
Initialise the board hardware.
#define NULL
NULL pointer.