X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fser.h;h=cd81f5af7b0e2bfa74ad834b2cb60a178b9b8be4;hb=911d2706a86d326786bfe721dcc3d63aeade7f28;hp=b0e0f36666778e9878c3e13ecfe04b4ece5ef1f5;hpb=50a0738459d136777e082b8fc2b7a2a085f0909b;p=bertos.git diff --git a/bertos/drv/ser.h b/bertos/drv/ser.h index b0e0f366..cd81f5af 100644 --- a/bertos/drv/ser.h +++ b/bertos/drv/ser.h @@ -31,22 +31,22 @@ * * --> * - * \brief High level serial I/O API + * \brief High level serial I/O API. * * \version $Id$ * \author Bernie Innocenti * - * $WIZARD_MODULE = { - * "name" : "ser", - * "depends" : ["kfile", "timer"], - * "configuration" : "bertos/cfg/cfg_ser.h" - * } + * $WIZ$ module_name = "ser" + * $WIZ$ module_depends = "kfile", "timer" + * $WIZ$ module_configuration = "bertos/cfg/cfg_ser.h" + * $WIZ$ module_hw = "bertos/hw/hw_ser.h" + * $WIZ$ module_supports = "not atmega103 and not atmega32 and not atmega8" */ #ifndef DRV_SER_H #define DRV_SER_H -#include +#include #include #include @@ -61,10 +61,10 @@ #define SERRF_TXTIMEOUT BV(2) /**< Transmit timeout */ /* Hardware errors */ - #define SERRF_RXSROVERRUN 0 /**< Unsupported in emulated serial port. */ - #define SERRF_FRAMEERROR 0 /**< Unsupported in emulated serial port. */ - #define SERRF_PARITYERROR 0 /**< Unsupported in emulated serial port. */ - #define SERRF_NOISEERROR 0 /**< Unsupported in emulated serial port. */ + #define SERRF_RXSROVERRUN 0 /**< Rx shift register overrun, unsupported in emulated serial port. */ + #define SERRF_FRAMEERROR 0 /**< Stop bit missing, unsupported in emulated serial port. */ + #define SERRF_PARITYERROR 0 /**< Parity error, unsupported in emulated serial port. */ + #define SERRF_NOISEERROR 0 /**< Noise error, unsupported in emulated serial port. */ enum { @@ -92,16 +92,14 @@ | SERRF_RXSROVERRUN \ | SERRF_PARITYERROR \ | SERRF_FRAMEERROR \ - | SERRF_NOISEERROR) -#define SERRF_TX (SERRF_TXTIMEOUT) + | SERRF_NOISEERROR) /**< All possible rx errors */ +#define SERRF_TX (SERRF_TXTIMEOUT) /**< All possible tx errors */ /*\}*/ /** * \name LSB or MSB first data order for SPI driver. * - * $WIZARD_LIST = { - * "ser_order_bit" : ["SER_MSB_FIRST", "SER_LSB_FIRST"] - * } + * $WIZ$ ser_order_bit = "SER_MSB_FIRST", "SER_LSB_FIRST" */ #define SER_MSB_FIRST 0 #define SER_LSB_FIRST 1 @@ -120,6 +118,22 @@ /*\}*/ +/** + * \def CONFIG_SER_STROBE + * + * This is a debug facility that can be used to + * monitor SER interrupt activity on an external pin. + * + * To use strobes, redefine the macros SER_STROBE_ON, + * SER_STROBE_OFF and SER_STROBE_INIT and set + * CONFIG_SER_STROBE to 1. + */ +#if !defined(CONFIG_SER_STROBE) || !CONFIG_SER_STROBE + #define SER_STROBE_ON do {/*nop*/} while(0) + #define SER_STROBE_OFF do {/*nop*/} while(0) + #define SER_STROBE_INIT do {/*nop*/} while(0) +#endif + struct SerialHardware; /** Human-readable serial error descriptions */ @@ -197,8 +211,8 @@ void spimaster_init(Serial *fds, unsigned int unit); * * \{ */ -#define ser_getstatus(h) ((h)->status) -#define ser_setstatus(h, x) ((h)->status = (x)) +#define ser_getstatus(serial) ((serial)->status) +#define ser_setstatus(serial, new_status) ((serial)->status = (new_status)) /* \} */ #endif /* DRV_SER_H */