G32R430 Device Driver Layer v1.0.4
G32R4xx Device Driver Layer API Reference
g32r4xx_ddl_iwdt.h
Go to the documentation of this file.
1
42
43/* Define to prevent recursive inclusion -------------------------------------*/
44#ifndef G32R4xx_DDL_IWDT_H
45#define G32R4xx_DDL_IWDT_H
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51/* Includes ------------------------------------------------------------------*/
52#include "g32r4xx.h"
53
57
58#if defined(IWDT)
59
63
64/* Private types -------------------------------------------------------------*/
65/* Private variables ---------------------------------------------------------*/
66
67/* Private constants ---------------------------------------------------------*/
71#define DDL_IWDT_KEY_RELOAD 0x0000AAAAU
72#define DDL_IWDT_KEY_ENABLE 0x0000CCCCU
73#define DDL_IWDT_KEY_WR_ACCESS_ENABLE 0x00005555U
74#define DDL_IWDT_KEY_WR_ACCESS_DISABLE 0x00000000U
78
79/* Private macros ------------------------------------------------------------*/
80
81/* Exported types ------------------------------------------------------------*/
82/* Exported constants --------------------------------------------------------*/
86
91#define DDL_IWDT_STS_PSCUFLG IWDT_STS_PSCUFLG
92#define DDL_IWDT_STS_CNTUFLG IWDT_STS_CNTUFLG
96
100#define DDL_IWDT_PSC_4 0x00000000U
101#define DDL_IWDT_PSC_8 (IWDT_PSC_PSC_0)
102#define DDL_IWDT_PSC_16 (IWDT_PSC_PSC_1)
103#define DDL_IWDT_PSC_32 (IWDT_PSC_PSC_1 | IWDT_PSC_PSC_0)
104#define DDL_IWDT_PSC_64 (IWDT_PSC_PSC_2)
105#define DDL_IWDT_PSC_128 (IWDT_PSC_PSC_2 | IWDT_PSC_PSC_0)
106#define DDL_IWDT_PSC_256 (IWDT_PSC_PSC_2 | IWDT_PSC_PSC_1)
110
114
115/* Exported macro ------------------------------------------------------------*/
119
123
131#define DDL_IWDT_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
132
139#define DDL_IWDT_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
143
147
148/* Exported functions --------------------------------------------------------*/
155
162__STATIC_INLINE void DDL_IWDT_Enable(IWDT_TypeDef *IWDTx)
163{
164 WRITE_REG(IWDTx->KEY, DDL_IWDT_KEY_ENABLE);
165}
166
172__STATIC_INLINE void DDL_IWDT_ReloadCounter(IWDT_TypeDef *IWDTx)
173{
174 WRITE_REG(IWDTx->KEY, DDL_IWDT_KEY_RELOAD);
175}
176
182__STATIC_INLINE void DDL_IWDT_EnableWriteAccess(IWDT_TypeDef *IWDTx)
183{
184 WRITE_REG(IWDTx->KEY, DDL_IWDT_KEY_WR_ACCESS_ENABLE);
185}
186
192__STATIC_INLINE void DDL_IWDT_DisableWriteAccess(IWDT_TypeDef *IWDTx)
193{
194 WRITE_REG(IWDTx->KEY, DDL_IWDT_KEY_WR_ACCESS_DISABLE);
195}
196
210__STATIC_INLINE void DDL_IWDT_SetPrescaler(IWDT_TypeDef *IWDTx, uint32_t Prescaler)
211{
212 WRITE_REG(IWDTx->PSC, IWDT_PSC_PSC & Prescaler);
213}
214
227__STATIC_INLINE uint32_t DDL_IWDT_GetPrescaler(IWDT_TypeDef *IWDTx)
228{
229 return (READ_REG(IWDTx->PSC));
230}
231
238__STATIC_INLINE void DDL_IWDT_SetReloadCounter(IWDT_TypeDef *IWDTx, uint32_t Counter)
239{
240 WRITE_REG(IWDTx->CNTRLD, IWDT_CNTRLD_CNTRLD & Counter);
241}
242
248__STATIC_INLINE uint32_t DDL_IWDT_GetReloadCounter(IWDT_TypeDef *IWDTx)
249{
250 return (READ_REG(IWDTx->CNTRLD));
251}
252
256
260
266__STATIC_INLINE uint32_t DDL_IWDT_IsActiveFlag_PVU(IWDT_TypeDef *IWDTx)
267{
268 return ((READ_BIT(IWDTx->STS, IWDT_STS_PSCUFLG) == (IWDT_STS_PSCUFLG)) ? 1UL : 0UL);
269}
270
276__STATIC_INLINE uint32_t DDL_IWDT_IsActiveFlag_RVU(IWDT_TypeDef *IWDTx)
277{
278 return ((READ_BIT(IWDTx->STS, IWDT_STS_CNTUFLG) == (IWDT_STS_CNTUFLG)) ? 1UL : 0UL);
279}
280
286__STATIC_INLINE uint32_t DDL_IWDT_IsReady(IWDT_TypeDef *IWDTx)
287{
288 return ((READ_BIT(IWDTx->STS, IWDT_STS_PSCUFLG | IWDT_STS_CNTUFLG) == 0U) ? 1UL : 0UL);
289}
290
294
298
302
303#endif /* IWDT */
304
308
309#ifdef __cplusplus
310}
311#endif
312
313#endif /* G32R4xx_DDL_IWDT_H */
314
__STATIC_INLINE void DDL_IWDT_Enable(IWDT_TypeDef *IWDTx)
Start the Independent Watchdog.
__STATIC_INLINE void DDL_IWDT_SetReloadCounter(IWDT_TypeDef *IWDTx, uint32_t Counter)
Specify the IWDT down-counter reload value.
__STATIC_INLINE void DDL_IWDT_DisableWriteAccess(IWDT_TypeDef *IWDTx)
Disable write access to IWDT_PR, IWDT_RLR and IWDT_WINR registers.
__STATIC_INLINE uint32_t DDL_IWDT_GetPrescaler(IWDT_TypeDef *IWDTx)
Get the selected prescaler of the IWDT.
__STATIC_INLINE void DDL_IWDT_ReloadCounter(IWDT_TypeDef *IWDTx)
Reloads IWDT counter with value defined in the reload register.
__STATIC_INLINE void DDL_IWDT_EnableWriteAccess(IWDT_TypeDef *IWDTx)
Enable write access to IWDT_PR, IWDT_RLR and IWDT_WINR registers.
__STATIC_INLINE uint32_t DDL_IWDT_GetReloadCounter(IWDT_TypeDef *IWDTx)
Get the specified IWDT down-counter reload value.
__STATIC_INLINE void DDL_IWDT_SetPrescaler(IWDT_TypeDef *IWDTx, uint32_t Prescaler)
Select the prescaler of the IWDT.
__STATIC_INLINE uint32_t DDL_IWDT_IsActiveFlag_RVU(IWDT_TypeDef *IWDTx)
Check if flag Reload Value Update is set or not.
__STATIC_INLINE uint32_t DDL_IWDT_IsActiveFlag_PVU(IWDT_TypeDef *IWDTx)
Check if flag Prescaler Value Update is set or not.
__STATIC_INLINE uint32_t DDL_IWDT_IsReady(IWDT_TypeDef *IWDTx)
Check if flags Prescaler & Reload Value Update are reset or not.
#define DDL_IWDT_KEY_WR_ACCESS_ENABLE
#define DDL_IWDT_KEY_ENABLE
#define DDL_IWDT_KEY_WR_ACCESS_DISABLE
#define DDL_IWDT_KEY_RELOAD