ser_mega.h
Go to the documentation of this file.00001
00041 #ifndef DRV_SER_MEGA_H
00042 #define DRV_SER_MEGA_H
00043
00044 #include <cfg/macros.h>
00045 #include <cfg/compiler.h>
00046
00047 typedef uint8_t serstatus_t;
00048
00049
00050 #define SERRF_RXFIFOOVERRUN BV(0)
00051 #define SERRF_RXTIMEOUT BV(5)
00052 #define SERRF_TXTIMEOUT BV(6)
00054
00055
00056
00057
00058 #define SERRF_RXSROVERRUN BV(3)
00059 #define SERRF_FRAMEERROR BV(4)
00060 #define SERRF_PARITYERROR BV(7)
00061 #define SERRF_NOISEERROR 0
00070 #define SPI_NORMAL_LOW 0
00071 #define SPI_NORMAL_HIGH 1
00072
00079 #define SPI_SAMPLE_ON_FIRST_EDGE 0
00080 #define SPI_SAMPLE_ON_SECOND_EDGE 1
00081
00087 enum
00088 {
00089 #if CPU_AVR_ATMEGA1280 || CPU_AVR_ATMEGA2560
00090 SER_UART0,
00091 SER_UART1,
00092 SER_UART2,
00093 SER_UART3,
00094 SER_SPI,
00095 #elif CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281
00096 SER_UART0,
00097 SER_UART1,
00098 SER_SPI,
00099 #elif CPU_AVR_ATMEGA103 || CPU_AVR_ATMEGA8 || CPU_AVR_ATMEGA32 || CPU_AVR_ATMEGA168 \
00100 || CPU_AVR_ATMEGA328P
00101 SER_UART0,
00102 SER_SPI,
00103 #else
00104 #error unknown architecture
00105 #endif
00106 SER_CNT
00107 };
00108
00109
00110 #endif