29 #pragma diag_suppress=Pm011,Pm073,Pm140,Pm143 45 #include <adi_processor.h> 46 #include <rtos_map/adi_rtos_map.h> 47 #include <adi_wdt_config.h> 48 #include <drivers/wdt/adi_wdt.h> 53 #define ADI_WDT_SYNC_BITS ((0x1u << BITP_WDT_STAT_COUNTING) | (0x1u << BITP_WDT_STAT_LOADING) | (0x1u << BITP_WDT_STAT_CLRIRQ)) 56 #define ADI_WDT_CLR_VALUE (0xCCCCu) 59 #if (ADI_WDT_CONTROL_TIMEOUT_MODE == 1u) 60 static ADI_CALLBACK gAppCallback;
86 if ((pADI_WDT0->STAT & ((uint16_t) BITM_WDT_STAT_LOCKED)) != ((uint16_t) 0x0u)) {
91 #if (ADI_WDT_CONTROL_TIMEOUT_MODE == 1u) 92 gAppCallback = pfCallback;
94 if (bEnable ==
true) {
95 NVIC_EnableIRQ (WDT_EXP_IRQn);
98 NVIC_DisableIRQ(WDT_EXP_IRQn);
103 while((pADI_WDT0->STAT & ADI_WDT_SYNC_BITS) != 0u) {
108 ADI_INT_STATUS_ALLOC();
109 ADI_ENTER_CRITICAL_REGION();
114 if (bEnable ==
true) {
116 (0x1u << BITP_WDT_CTL_EN ) |
123 (0x0u << BITP_WDT_CTL_EN ) |
129 ADI_EXIT_CRITICAL_REGION();
143 while((pADI_WDT0->STAT & ADI_WDT_SYNC_BITS) != 0u) {
148 pADI_WDT0->RESTART = ADI_WDT_CLR_VALUE;
162 *pCurCount = pADI_WDT0->CCNT;
177 #if (ADI_WDT_CONTROL_TIMEOUT_MODE == 1u) 178 extern void WDog_Tmr_Int_Handler(
void);
179 void WDog_Tmr_Int_Handler(
void) {
184 if(gAppCallback != NULL) {
186 gAppCallback(NULL, 0x0u, NULL);
#define ADI_WDT_CONTROL_CLOCK_PRESCALER
ADI_WDT_RESULT adi_wdt_Enable(bool const bEnable, ADI_CALLBACK const pfCallback)
WDT Enable.
#define ADI_WDT_CONTROL_TIMER_MODE
#define ADI_WDT_CONTROL_TIMEOUT_MODE
void adi_wdt_Kick(void)
WDT Reset.
#define ADI_WDT_LOAD_VALUE
void adi_wdt_GetCount(uint16_t *const pCurCount)
WDT Read Count.
#define ADI_WDT_CONTROL_POWER_MODE