Fix serial driver for ATMega32.
authorlottaviano <lottaviano@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 21 Sep 2010 08:35:58 +0000 (08:35 +0000)
committerlottaviano <lottaviano@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 21 Sep 2010 08:35:58 +0000 (08:35 +0000)
Also enable ATMega32 serial driver in the Wizard.

This patch should also have fixed serial support for ATMega8,
but the timer is still broken so I'm not enabling ATMega8
serial support in the Wizard.

Signed-off-by: Gilles <rischgilles@picadilly.lu>
Signed-off-by: Luca Ottaviano <lottaviano@develer.com>
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4251 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/cpu/avr/drv/ser_avr.c
bertos/cpu/avr/drv/ser_avr.h
bertos/drv/ser.h

index ee6c6ab10437052ebd977f57a32be1909ff419cd..a4328f41b8552b60af93b6919b098484969672d3 100644 (file)
        #define SPI_SCK_BIT   PB5
        #define SPI_MOSI_BIT  PB3
        #define SPI_MISO_BIT  PB4
+#elif CPU_AVR_ATMEGA32
+       #define SPI_PORT      PORTB
+       #define SPI_DDR       DDRB
+       #define SPI_SS_BIT    PB4
+       #define SPI_SCK_BIT   PB7
+       #define SPI_MOSI_BIT  PB5
+       #define SPI_MISO_BIT  PB6
 #else
        #error Unknown architecture
 #endif
        #define USART0_UDRE_vect USART_UDRE_vect
        #define USART0_RX_vect USART_RX_vect
        #define USART0_TX_vect USART_TX_vect
-#elif CPU_AVR_ATMEGA8
+#elif CPU_AVR_ATMEGA8 || CPU_AVR_ATMEGA32
        #define AVR_HAS_UART1 0
        #define AVR_HAS_UART2 0
        #define AVR_HAS_UART3 0
        #define UDR0   UDR
        #define UBRR0L UBRRL
        #define UBRR0H UBRRH
+       #define UPM01  UPM1
+       #define UPM00  UPM0
        #define USART0_UDRE_vect USART_UDRE_vect
-       #define USART0_RX_vect USART_RX_vect
-       #define USART0_TX_vect USART_TX_vect
+       #define USART0_RX_vect USART_RXC_vect
+       #define USART0_TX_vect USART_TXC_vect
 #elif CPU_AVR_ATMEGA103
        #define AVR_HAS_UART1 0
        #define AVR_HAS_UART2 0
index 5f3c9fb87e437f008a15efeab60d56e76e2bff8c..36d3a6f8fc04f766f64f531640b8f55108f12831 100644 (file)
@@ -96,7 +96,8 @@ enum
        SER_UART0,
        SER_UART1,
        SER_SPI,
-#elif CPU_AVR_ATMEGA103 || CPU_AVR_ATMEGA8 || CPU_AVR_ATMEGA168 || CPU_AVR_ATMEGA328P
+#elif CPU_AVR_ATMEGA103 || CPU_AVR_ATMEGA8 || CPU_AVR_ATMEGA32 || CPU_AVR_ATMEGA168 \
+               || CPU_AVR_ATMEGA328P
        SER_UART0,
        SER_SPI,
 #else
index 0f89d932eaa1b6b3e9f5fe854162c03a1981663e..861fdf19a4fdfda3fc014dd1f1d3f430df0e8186 100644 (file)
@@ -39,7 +39,7 @@
  * $WIZ$ module_depends = "kfile", "timer"
  * $WIZ$ module_configuration = "bertos/cfg/cfg_ser.h"
  * $WIZ$ module_hw = "bertos/hw/hw_ser.h"
- * $WIZ$ module_supports =  "not atmega103 and not atmega32 and not atmega8"
+ * $WIZ$ module_supports =  "not atmega103 and not atmega8"
  */
 
 #ifndef DRV_SER_H