ser_simple_avr.h
Go to the documentation of this file.00001
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 #ifndef SER_SIMPLE_H
00066 #define SER_SIMPLE_H
00067
00068
00069 #define SER_SIMPLE
00070
00071 #include <appconfig.h>
00072 #include <cfg/compiler.h>
00073
00074
00075 #if 0
00076 #if CPU_AVR
00077 typedef uint8_t serstatus_t;
00078
00079
00080 #define SERRF_RXFIFOOVERRUN BV(0)
00081 #define SERRF_RXTIMEOUT BV(5)
00082 #define SERRF_TXTIMEOUT BV(6)
00084
00085 #define SERRF_RXSROVERRUN BV(3)
00086 #define SERRF_FRAMEERROR BV(4)
00087 #define SERRF_PARITYERROR BV(7)
00088 #else
00089 #error unknown architecture
00090 #endif
00091
00092
00098 enum
00099 {
00100 #if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128
00101 SER_UART0,
00102 SER_UART1,
00103 SER_SPI,
00104 #elif CPU_AVR_ATMEGA103 || CPU_AVR_ATMEGA8
00105 SER_UART0,
00106 SER_SPI,
00107 #else
00108 #error unknown architecture
00109 #endif
00110 SER_CNT
00111 };
00112
00113 #endif
00114
00116
00117 #define SER_PARITY_NONE 0
00118 #define SER_PARITY_EVEN 2
00119 #define SER_PARITY_ODD 3
00120
00121
00122
00124 struct Serial;
00125
00126
00127 extern int _ser_putchar(int c);
00128 extern int _ser_getchar(void);
00129 extern int _ser_getchar_nowait(void);
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139 extern int _ser_print(const char *s);
00140
00141 extern void _ser_setbaudrate(unsigned long rate);
00142 extern void _ser_setparity(int parity);
00143 extern void _ser_settimeouts(void);
00144 extern void _ser_setstatus(void);
00145
00146
00147
00148
00149 extern void _ser_purge(void);
00150 extern struct Serial *_ser_open(void);
00151 extern void _ser_close(void);
00152
00158 #define ser_putchar(c, port) _ser_putchar(c)
00159 #define ser_getchar(port) _ser_getchar()
00160 #define ser_getchar_nowait(port) _ser_getchar_nowait()
00161 #define ser_print(port, s) _ser_print(s)
00162 #define ser_setbaudrate(port, y) _ser_setbaudrate(y)
00163 #define ser_setparity(port, par) _ser_setparity(par)
00164 #define ser_settimeouts(port, y, z) _ser_settimeouts()
00165 #define ser_purge(port) _ser_purge()
00166 #define ser_open(port) _ser_open()
00167 #define ser_getstatus(h) 0
00168 #define ser_setstatus(h, x) do {(void)(x);} while(0)
00169
00170
00171 #endif