00001 #ifndef UART_H
00002 #define UART_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00051 #if (__GNUC__ * 100 + __GNUC_MINOR__) < 304
00052 #error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !"
00053 #endif
00054
00055
00056
00057
00058
00059
00064 #define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu)/((baudRate)*16l)-1)
00065
00070 #define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) (((xtalCpu)/((baudRate)*8l)-1)|0x8000)
00071
00072
00074 #ifndef UART_RX_BUFFER_SIZE
00075 #define UART_RX_BUFFER_SIZE 32
00076 #endif
00077
00078 #ifndef UART_TX_BUFFER_SIZE
00079 #define UART_TX_BUFFER_SIZE 32
00080 #endif
00081
00082
00083 #if ( (UART_RX_BUFFER_SIZE+UART_TX_BUFFER_SIZE) >= (RAMEND-0x60 ) )
00084 #error "size of UART_RX_BUFFER_SIZE + UART_TX_BUFFER_SIZE larger than size of SRAM"
00085 #endif
00086
00087
00088
00089
00090 #define UART_FRAME_ERROR 0x0800
00091 #define UART_OVERRUN_ERROR 0x0400
00092 #define UART_BUFFER_OVERFLOW 0x0200
00093 #define UART_NO_DATA 0x0100
00094
00095
00096
00097
00098
00099
00105 extern void uart_init(unsigned int baudrate);
00106
00107
00133 extern unsigned int uart_getc(void);
00134
00135
00141 extern void uart_putc(unsigned char data);
00142
00143
00154 extern void uart_puts(const char *s );
00155
00156
00168 extern void uart_puts_p(const char *s );
00169
00173 #define uart_puts_P(__s) uart_puts_p(PSTR(__s))
00174
00175
00176
00178 extern void uart1_init(unsigned int baudrate);
00180 extern unsigned int uart1_getc(void);
00182 extern void uart1_putc(unsigned char data);
00184 extern void uart1_puts(const char *s );
00186 extern void uart1_puts_p(const char *s );
00188 #define uart1_puts_P(__s) uart1_puts_p(PSTR(__s))
00189
00193 #endif // UART_H
00194