enum states {STATE0, STATE1, STATE2, STATE3, STATE4, STATE5, STATE6, STATE7};
enum combmode {OR, MATCH, IO, AND};
/**
* SCT Event State register values enum
*/
typedef enum CHIP_SCT_EVENT_STATE {
SCT_EVENT_STATE0 = 0,/*!< SCT Event State register 0 */
SCT_EVENT_STATE1 = 1,/*!< SCT Event State register 1 */
SCT_EVENT_STATE2 = 2,/*!< SCT Event State register 2 */
SCT_EVENT_STATE3 = 3,/*!< SCT Event State register 3 */
SCT_EVENT_STATE4 = 4,/*!< SCT Event State register 4 */
SCT_EVENT_STATE5 = 5,/*!< SCT Event State register 5 */
SCT_EVENT_STATE6 = 6,/*!< SCT Event State register 6 */
SCT_EVENT_STATE7 = 7,/*!< SCT Event State register 7 */
} CHIP_SCT_EVENT_STATE_T;
/**
* @briefSet event states in the State Configurable Timer
* @parampSCT: The base of SCT peripheral on the chip
* @paramn: Event state register
* @paramvalue: single or ORed state values
* @returnNothing
*/
STATIC INLINE void Chip_SCT_SetEventState(LPC_SCT_T *pSCT, CHIP_SCT_EVENT_STATE_T n, uint32_t value)
{
pSCT->EVENT[n].STATE = value;
}
/**
* SCT Event Control register values enum
*/
typedef enum CHIP_SCT_EVENT_CTRL {
SCT_EVENT_CTRL0 = 0,/*!< SCT Event Control register 0 */
SCT_EVENT_CTRL1 = 1,/*!< SCT Event Control register 1 */
SCT_EVENT_CTRL2 = 2,/*!< SCT Event Control register 2 */
SCT_EVENT_CTRL3 = 3,/*!< SCT Event Control register 3 */
SCT_EVENT_CTRL4 = 4,/*!< SCT Event Control register 4 */
SCT_EVENT_CTRL5 = 5,/*!< SCT Event Control register 5 */
SCT_EVENT_CTRL6 = 6,/*!< SCT Event Control register 6 */
SCT_EVENT_CTRL7 = 7,/*!< SCT Event Control register 7 */
} CHIP_SCT_EVENT_CTRL_T;
/*
* @brief Macro defines for SCT event control register
*/
#define SCT_EVENT_CTRL_CTRL_MATCHSEL(x) (((x) & 0x0F) << 0) /*!< Select match register */
#define SCT_EVENT_CTRL_HEVENT(x) (((x) & 0x01) << 4) /*!< Select L/H counter */
#define SCT_EVENT_CTRL_OUTSEL(x) (((x) & 0x01) << 5) /*!< Input/output select */
#define SCT_EVENT_CTRL_IOSEL(x) (((x) & 0x0F) << 6) /*!< Select I/O signal number */
#define SCT_EVENT_CTRL_IOCOND(x) (((x) & 0x03) << 10) /*!< Select I/O condition */
#define SCT_EVENT_CTRL_COMBMODE(x) (((x) & 0x03) << 12) /*!< Select match and/or I/O condition */
#define SCT_EVENT_CTRL_STATELD(x) (((x) & 0x01) << 14) /*!< Control how STATEV modifies the state */
#define SCT_EVENT_CTRL_STATELD(x) (((x) & 0x01) << 14) /*!< Control how STATEV modifies the state */
#define SCT_EVENT_CTRL_MATCHMEM (1 << 20) /*!< MATCHMEM */
#define SCT_EVENT_CTRL_DIRECTION(x) (((x) & 0x03) << 21) /*!< Direction qualifier for event generation */
#define SCT_STATE(x) (1 << ((x) & 0XFF))
/**
* @briefSet event control values in the State Configurable Timer
* @parampSCT: The base of SCT peripheral on the chip
* @paramn: Event control register
* @paramvalue: single or ORed control values
* @returnNothing
*/
STATIC INLINE void Chip_SCT_SetEventControl(LPC_SCT_T *pSCT, CHIP_SCT_EVENT_CTRL_T n, uint32_t value)
{
pSCT->EVENT[n].CTRL = value;
}
|