BeRTOS
ser_simple_avr.h
Go to the documentation of this file.
00001 
00039 #ifndef DRV_SER_SIMPLE_AVR_H
00040 #define DRV_SER_SIMPLE_AVR_H
00041 
00042 #warning FIXME:This module is obsolete, yuo must refactor it.
00043 
00044 #if 0
00045 /* For checking which serial driver is linked */
00046 #define SER_SIMPLE
00047 
00048 #include <appconfig.h>
00049 #include <cfg/compiler.h>
00050 
00051 
00052 #if 0
00053 #if CPU_AVR
00054     typedef uint8_t serstatus_t;
00055 
00056     /* Software errors */
00057     #define SERRF_RXFIFOOVERRUN  BV(0)  
00058     #define SERRF_RXTIMEOUT      BV(5)  
00059     #define SERRF_TXTIMEOUT      BV(6)  
00061     /* Hardware errors */
00062     #define SERRF_RXSROVERRUN    BV(3)  
00063     #define SERRF_FRAMEERROR     BV(4)  
00064     #define SERRF_PARITYERROR    BV(7)  
00065 #else
00066     #error unknown architecture
00067 #endif
00068 /*\}*/
00069 
00075 enum
00076 {
00077 #if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128
00078     SER_UART0,
00079     SER_UART1,
00080     SER_SPI,
00081 #elif CPU_AVR_ATMEGA103 || CPU_AVR_ATMEGA8
00082     SER_UART0,
00083     SER_SPI,
00084 #else
00085     #error unknown architecture
00086 #endif
00087     SER_CNT  
00088 };
00089 /*\}*/
00090 #endif
00091 
00093 /*\{*/
00094 #define SER_PARITY_NONE  0
00095 #define SER_PARITY_EVEN  2
00096 #define SER_PARITY_ODD   3
00097 /*\}*/
00098 
00099 
00101 struct Serial;
00102 
00103 /* Function prototypes */
00104 extern int _ser_putchar(int c);
00105 extern int _ser_getchar(void);
00106 extern int _ser_getchar_nowait(void);
00107 /*
00108 extern int ser_write(struct Serial *port, const void *buf, size_t len);
00109 extern int ser_read(struct Serial *port, void *buf, size_t size);
00110 
00111 extern int ser_printf(struct Serial *port, const char *format, ...) FORMAT(__printf__, 2, 3);
00112 
00113 extern int ser_gets(struct Serial *port, char *buf, int size);
00114 extern int ser_gets_echo(struct Serial *port, char *buf, int size, bool echo);
00115 */
00116 extern int _ser_print(const char *s);
00117 
00118 extern void _ser_setbaudrate(unsigned long rate);
00119 extern void _ser_setparity(int parity);
00120 extern void _ser_settimeouts(void);
00121 extern void _ser_setstatus(void);
00122 /*
00123 extern void ser_resync(struct Serial *port, time_t delay);
00124 extern void ser_drain(struct Serial *port);
00125 */
00126 extern void _ser_purge(void);
00127 extern struct Serial *_ser_open(void);
00128 extern void _ser_close(void);
00129 
00135 #define ser_putchar(c, port)        _ser_putchar(c)
00136 #define ser_getchar(port)           _ser_getchar()
00137 #define ser_getchar_nowait(port)    _ser_getchar_nowait()
00138 #define ser_print(port, s)          _ser_print(s)
00139 #define ser_setbaudrate(port, y)    _ser_setbaudrate(y)
00140 #define ser_setparity(port, par)    _ser_setparity(par)
00141 #define ser_settimeouts(port, y, z) _ser_settimeouts()
00142 #define ser_purge(port)             _ser_purge()
00143 #define ser_open(port)              _ser_open()
00144 #define ser_getstatus(h)            0
00145 #define ser_setstatus(h, x)         do {(void)(x);} while(0)
00146 /* \} */
00147 
00148 #endif /* DRV_SER_SIMPLE_AVR_H */
00149 
00150 #endif