ser_simple_avr.h

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