33 #ifndef __SILICON_LABS_EM_CRC_H__
34 #define __SILICON_LABS_EM_CRC_H__
37 #if defined(CRC_COUNT) && (CRC_COUNT > 0)
64 crcWidth8 = CRC_CTRL_CRCWIDTH_CRCWIDTH8,
67 crcWidth16 = CRC_CTRL_CRCWIDTH_CRCWIDTH16,
70 crcWidth24 = CRC_CTRL_CRCWIDTH_CRCWIDTH24,
73 crcWidth32 = CRC_CTRL_CRCWIDTH_CRCWIDTH32
82 crcByteOrderNormal = CRC_CTRL_BYTEREVERSE_NORMAL,
86 crcByteOrderReversed = CRC_CTRL_BYTEREVERSE_REVERSED
87 } CRC_ByteOrder_TypeDef;
94 crcBitOrderLSBFirst = CRC_CTRL_INPUTBITORDER_LSBFIRST,
97 crcBitOrderMSBFirst = CRC_CTRL_INPUTBITORDER_MSBFIRST
98 } CRC_BitOrder_TypeDef;
106 crcBitReverseNormal = CRC_CTRL_BITREVERSE_NORMAL,
110 crcBitReverseReversed = CRC_CTRL_BITREVERSE_REVERSED
111 } CRC_BitReverse_TypeDef;
122 CRC_Width_TypeDef crcWidth;
154 CRC_ByteOrder_TypeDef byteReverse;
159 CRC_BitOrder_TypeDef inputBitOrder;
166 CRC_BitReverse_TypeDef bitReverse;
182 #define CRC_INIT_DEFAULT \
188 crcByteOrderNormal, \
189 crcBitOrderLSBFirst, \
190 crcBitReverseNormal, \
201 void CRC_Init(CRC_Init_TypeDef
const *init);
202 void CRC_Reset(
void);
217 __STATIC_INLINE
void CRC_InitCommand(
void)
219 CRC->CMD = CRC_CMD_INITIALIZE;
227 __STATIC_INLINE
void CRC_InitValueSet(uint32_t initValue)
229 CRC->INIT = initValue;
245 __STATIC_INLINE
void CRC_InputDataWrite(uint16_t data)
247 CRC->INPUTDATA = (uint32_t)data;
261 __STATIC_INLINE uint32_t CRC_DataRead(
void)
279 __STATIC_INLINE
bool CRC_BusyGet(
void)
281 return (
bool)((CRC->STATUS & _CRC_STATUS_BUSY_MASK)
282 >> _CRC_STATUS_BUSY_SHIFT);
CMSIS Cortex-M Peripheral Access Layer for Silicon Laboratories microcontroller devices.