00001 #ifndef UART_H
00002 #define UART_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00033
00034
00035 #if (__GNUC__ * 100 + __GNUC_MINOR__) < 303
00036 #error "This library requires AVR-GCC 3.3 or later, update to newer AVR-GCC compiler !"
00037 #endif
00038
00039
00040
00041
00042
00043
00048 #define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu)/((baudRate)*16l)-1)
00049
00050
00052 #define UART_RX_BUFFER_SIZE 32
00053
00054 #define UART_TX_BUFFER_SIZE 32
00055
00056
00057
00058 #ifndef P
00059 #define P(s) ({static const char c[] __attribute__ ((progmem)) = s;c;})
00060 #endif
00061
00062
00063
00064
00065
00066 #define UART_FRAME_ERROR 0x0800
00067 #define UART_OVERRUN_ERROR 0x0400
00068 #define UART_BUFFER_OVERFLOW 0x0200
00069 #define UART_NO_DATA 0x0100
00070
00071
00072
00073
00074
00075
00081 extern void uart_init(unsigned int baudrate);
00082
00083
00109 extern unsigned int uart_getc(void);
00110
00111
00117 extern void uart_putc(unsigned char data);
00118
00119
00120 extern void uart_putc_hex(unsigned char data);
00121 extern void uart_putdw_dec(uint32_t dw);
00122 extern void uart_putw_dec(uint16_t dw);
00133 extern void uart_puts(const char *s );
00134
00135
00147 extern void uart_puts_p(const char *s );
00148
00152 #define uart_puts_P(__s) uart_puts_p(P(__s))
00153
00154
00159 extern void uart1_init(unsigned int baudrate);
00160 extern unsigned int uart1_getc(void);
00161 extern void uart1_putc(unsigned char data);
00162 extern void uart1_puts(const char *s );
00163 extern void uart1_puts_p(const char *s );
00164 #define uart1_puts_P(__s) uart1_puts_p(P(__s))
00165
00166
00167
00168 #endif // UART_H
00169