X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Fser.h;h=27d49b406969adaf864dc11f334fb361a776ede8;hb=af78856c1817975ccf9e015f493422a794450351;hp=095da31adc2a40ef4d7acd1e6575d9d8c1772040;hpb=ffd018661b93d258df699ee4e86d0f2f1cccba4e;p=bertos.git diff --git a/drv/ser.h b/drv/ser.h index 095da31a..27d49b40 100755 --- a/drv/ser.h +++ b/drv/ser.h @@ -14,6 +14,24 @@ /*#* *#* $Log$ + *#* 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. + *#* *#* Revision 1.28 2006/07/21 10:58:00 batt *#* Use timer_clock() instead of obsolete timer_ticks(). *#* @@ -158,7 +176,10 @@ #endif /*\}*/ -/** Mask to group all RX errors. */ +/** + * \name Masks to group TX/RX errors. + * \{ + */ #define SERRF_RX \ ( SERRF_RXFIFOOVERRUN \ | SERRF_RXTIMEOUT \ @@ -166,10 +187,16 @@ | SERRF_PARITYERROR \ | SERRF_FRAMEERROR \ | SERRF_NOISEERROR) - -/** Mask to group all TX errors. */ #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(). @@ -177,8 +204,8 @@ * \note Values are AVR-specific for performance reasons. * Other processors should either decode them or * redefine these macros. + * \{ */ -/*\{*/ #define SER_PARITY_NONE 0 #define SER_PARITY_EVEN 2 #define SER_PARITY_ODD 3 @@ -191,7 +218,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, @@ -248,7 +275,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;