SERRF_TX, SERRF_RX: New macros; Enhance documentation.
authorbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 19 Oct 2004 08:11:53 +0000 (08:11 +0000)
committerbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 19 Oct 2004 08:11:53 +0000 (08:11 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@239 38d2e660-2303-0410-9eaa-f027e97ec537

drv/ser.h

index a11e0fb6e09f32e46e45ab60f1abf233bbf4e943..738c572b92cdc35fe77d10d7a4593cfe4c8d6b83 100755 (executable)
--- a/drv/ser.h
+++ b/drv/ser.h
@@ -14,6 +14,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.15  2004/10/19 08:11:53  bernie
+ *#* SERRF_TX, SERRF_RX: New macros; Enhance documentation.
+ *#*
  *#* Revision 1.14  2004/10/03 18:43:18  bernie
  *#* Fix a nasty bug caused by confusion between old-style and new-style configuration macros.
  *#*
 #include <compiler.h>
 #include <config.h>
 
-/*!
- * \name Serial Error/status flags
- *
- * Some of these flags map directly to the flags
- * in AVR UART Status Register(USR).
- * \todo  flags of DSP56k aren't mapped to these flags. Luckily
- *        these flags doesn't collide with the DSP56k ones,
- *        which are from 0x0100 to 0x8000
- */
+/*! \name Serial Error/status flags. */
 /*\{*/
 #if CPU_AVR
        typedef uint8_t serstatus_t;
        #define SERRF_RXTIMEOUT      BV(5)  /*!< Receive timeout */
        #define SERRF_TXTIMEOUT      BV(6)  /*!< Transmit timeout */
 
-       /* Hardware errors */
+       /*
+        * Hardware errors.
+         * These flags map directly to the AVR UART Status Register (USR).
+        */
        #define SERRF_RXSROVERRUN    BV(3)  /*!< Rx shift register overrun */
        #define SERRF_FRAMEERROR     BV(4)  /*!< Stop bit missing */
        #define SERRF_PARITYERROR    BV(7)  /*!< Parity error */
+       #define SERRF_NOISEERROR     0      /*!< Unsupported */
 #elif CPU_DSP56K
        typedef uint16_t serstatus_t;
 
        #define SERRF_RXTIMEOUT      BV(1)  /*!< Receive timeout */
        #define SERRF_TXTIMEOUT      BV(2)  /*!< Transmit timeout */
 
-       /* Hardware errors */
+       /*
+        * Hardware errors.
+         * These flags map directly to the SCI Control Register.
+        */
        #define SERRF_PARITYERROR    BV(8)  /*!< Parity error */
        #define SERRF_FRAMEERROR     BV(9)  /*!< Stop bit missing */
        #define SERRF_NOISEERROR     BV(10) /*!< Noise error */
 #endif
 /*\}*/
 
-/*! \name Parity settings for ser_setparity() */
+/*! \name Masks to group TX/RX errors. */
+/*\{*/
+#define SERRF_RX  (SERRF_RXFIFOOVERRUN \
+       | SERRF_RXTIMEOUT \
+       | SERRF_RXSROVERRUN \
+       | SERRF_PARITYERROR \
+       | SERRF_FRAMEERROR \
+       | SERRF_NOISEERROR)
+#define SERRF_TX  (SERRF_TXTIMEOUT)
+/*\}*/
+
+
+/*!
+ * \name Parity settings for ser_setparity().
+ *
+ * \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