From 896194ff77322a1c52e5bc20f8f85a089b1ebee9 Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Sat, 26 Aug 2006 11:35:39 +0000 Subject: [PATCH] Got uart/usart serial communication working with the atmega168. Added some #define for the appropriate register and interrupt/signal names. --- readme.txt | 2 +- targets/arduino/uart.h | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 583d6dd51..fa9602163 100644 --- a/readme.txt +++ b/readme.txt @@ -30,7 +30,7 @@ UPDATES 0005 -ATmega168 support on the way (currently timers and pwm working). +ATmega168 support in the AVR libraries. New Wiring-compatible randomSeed(), random(max) and random(min, max) functions (except operating on longs instead of floats). Fixed bug that sometimes caused uploading of old versions of a sketch. diff --git a/targets/arduino/uart.h b/targets/arduino/uart.h index 26e915acc..16a14ba5d 100755 --- a/targets/arduino/uart.h +++ b/targets/arduino/uart.h @@ -58,6 +58,20 @@ #if defined(UBRR) && !defined(UBRRL) #define UBRRL UBRR #endif +// DAM: it seems the ATmega168 includes a '0' in its register names, despite +// having only one uart +#if defined(__AVR_ATmega168__) + #define RXCIE RXCIE0 + #define TXCIE TXCIE0 + #define RXEN RXEN0 + #define TXEN TXEN0 + #define UDR UDR0 + #define UCR UCSR0B + #define UBRRL UBRR0L + #define UBRRH UBRR0H + #define SIG_UART_TRANS USART_TX_vect + #define SIG_UART_RECV USART_RX_vect +#endif // compatibility with dual-uart processors // (if you need to use both uarts, please use the uart2 library) #if defined(__AVR_ATmega128__)