|
|
#ifndef STDREGMACROS_H
|
#define STDREGMACROS_H
|
|
#ifdef __cplusplus
|
extern "C"{
|
#endif
|
|
|
/*==================================================================================================
|
* SOURCE FILE VERSION INFORMATION
|
==================================================================================================*/
|
#define STDREGMACROS_H_MAJOR_VERSION 1
|
#define STDREGMACROS_H_MINOR_VERSION 0
|
#define STDREGMACROS_H_PATCH_VERSION 2
|
|
/*==================================================================================================
|
* FILE VERSION CHECKS
|
==================================================================================================*/
|
|
|
/*==================================================================================================
|
* CONSTANTS
|
==================================================================================================*/
|
|
/*==================================================================================================
|
* DEFINES AND MACROS
|
==================================================================================================*/
|
|
/**
|
* write register value
|
*/
|
|
/**
|
* @brief 8 bits memory write macro
|
*/
|
#define REG_WRITE8(address, value) ((address) = (value))
|
/**
|
* @brief 16 bits memory write macro.
|
*/
|
#define REG_WRITE16(address, value) ((address) = (value))
|
/**
|
* @brief 32 bits memory write macro.
|
*/
|
#define REG_WRITE32(address, value) ((address) = (value))
|
/**
|
* read register value
|
*/
|
|
/**
|
* @brief 8 bits memory read macro.
|
*/
|
#define REG_READ8(address) (address)
|
/**
|
* @brief 16 bits memory read macro.
|
*/
|
#define REG_READ16(address) (address)
|
/**
|
* @brief 32 bits memory read macro.
|
*/
|
#define REG_READ32(address) (address)
|
|
/**
|
* clear bit value
|
*/
|
|
/**
|
* @brief 8 bits bits clearing macro.
|
*/
|
#define REG_BIT_CLEAR8(address, mask) ((address)&= (~(mask)))
|
/**
|
* @brief 16 bits bits clearing macro.
|
*/
|
#define REG_BIT_CLEAR16(address, mask) ((address)&= (~(mask)))
|
/**
|
* @brief 32 bits bits clearing macro.
|
*/
|
#define REG_BIT_CLEAR32(address, mask) ((address)&= (~(mask)))
|
|
/**
|
* get bit value
|
*/
|
|
/**
|
* @brief 8 bits bits getting macro.
|
*/
|
#define REG_BIT_GET8(address, mask) ((address)& (mask))
|
/**
|
* @brief 16 bits bits getting macro.
|
*/
|
#define REG_BIT_GET16(address, mask) ((address)& (mask))
|
/**
|
* @brief 32 bits bits getting macro.
|
*/
|
#define REG_BIT_GET32(address, mask) ((address)& (mask))
|
|
|
/**
|
* set bit value
|
*/
|
|
/**
|
* @brief 8 bits bits setting macro.
|
*/
|
#define REG_BIT_SET8(address, mask) ((address)|= (mask))
|
/**
|
* @brief 16 bits bits setting macro.
|
*/
|
#define REG_BIT_SET16(address, mask) ((address)|= (mask))
|
/**
|
* @brief 32 bits bits setting macro.
|
*/
|
#define REG_BIT_SET32(address, mask) ((address)|= (mask))
|
|
|
/**
|
* @brief 8 bit clear bits and set with new value
|
*/
|
#define REG_RMW8(address, mask, value) (REG_WRITE8((address), ((REG_READ8(address)& ((uint8)~(mask)))| (value))))
|
/**
|
* @brief 16 bit clear bits and set with new value
|
*/
|
#define REG_RMW16(address, mask, value) (REG_WRITE16((address), ((REG_READ16(address)& ((uint16)~(mask)))| (value))))
|
/**
|
* @brief 32 bit clear bits and set with new value
|
*/
|
#define REG_RMW32(address, mask, value) (REG_WRITE32((address), ((REG_READ32(address)& ((uint32)~(mask)))| (value))))
|
|
|
|
#ifdef __cplusplus
|
}
|
#endif
|
|
#endif /* #ifndef STDREGMACROS_H */
|
|
/** @} */
|