X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Fser.h;h=d184ad886dc9400a81a7cad44ec4abeb95a7c686;hb=8b022f0d098ab63e708d05634b6d1b3f1dc58815;hp=edc924d25732d492bdcf7044cda8bbe8a0b96ee1;hpb=2fe4aad13b9375f14798d36a68b6e97fa52e22b3;p=bertos.git diff --git a/drv/ser.h b/drv/ser.h index edc924d2..d184ad88 100755 --- a/drv/ser.h +++ b/drv/ser.h @@ -14,6 +14,24 @@ /*#* *#* $Log$ + *#* Revision 1.35 2007/01/27 20:47:12 batt + *#* Add clear status. + *#* + *#* Revision 1.34 2006/11/20 15:07:40 batt + *#* Revert unneeded locked functions. + *#* + *#* Revision 1.33 2006/11/17 17:03:58 batt + *#* Implement ser_setstatus and ser_getstatus as functions to avoid race conditions. + *#* + *#* Revision 1.32 2006/11/17 16:01:12 batt + *#* Serial status MUST be volatile. + *#* + *#* Revision 1.31 2006/09/13 18:22:48 bernie + *#* Typo. + *#* + *#* Revision 1.30 2006/09/13 18:21:23 bernie + *#* Add configurable SPI pin mapping. + *#* *#* Revision 1.29 2006/09/13 13:59:11 bernie *#* Documentation fixes. *#* @@ -175,6 +193,13 @@ #define SERRF_TX (SERRF_TXTIMEOUT) /*\}*/ +/** + * \name LSB or MSB first data order, used with SPI AVR serial + * \{ + */ +#define SER_MSB_FIRST 0 +#define SER_LSB_FIRST 1 +/*\}*/ /** * \name Parity settings for ser_setparity(). @@ -196,7 +221,7 @@ */ enum { -#if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 +#if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281 SER_UART0, SER_UART1, SER_SPI, @@ -253,7 +278,7 @@ typedef struct Serial #endif /** Holds the flags defined above. Will be 0 when no errors have occurred. */ - serstatus_t status; + volatile serstatus_t status; /** Low-level interface to hardware. */ struct SerialHardware* hw; @@ -281,6 +306,8 @@ extern void ser_resync(struct Serial *port, mtime_t delay); extern void ser_purge(struct Serial *port); extern void ser_drain(struct Serial *port); +extern void ser_clearstatus(struct Serial *port); + extern struct Serial *ser_open(unsigned int unit); extern void ser_close(struct Serial *port);