60 #pragma diag_suppress=Pm011,Pm073,Pm140,Pm143 76 #include <adi_processor.h> 77 #include <rtos_map/adi_rtos_map.h> 78 #include <adi_wdt_config.h> 79 #include <drivers/wdt/adi_wdt.h> 84 #define ADI_WDT_SYNC_BITS ((0x1u << BITP_WDT_STAT_COUNTING) | (0x1u << BITP_WDT_STAT_LOADING) | (0x1u << BITP_WDT_STAT_CLRIRQ)) 87 #define ADI_WDT_CLR_VALUE (0xCCCCu) 90 #if (ADI_WDT_CONTROL_TIMEOUT_MODE == 1u) 91 static ADI_CALLBACK gAppCallback;
117 if ((pADI_WDT0->STAT & ((uint16_t) BITM_WDT_STAT_LOCKED)) != ((uint16_t) 0x0u)) {
122 #if (ADI_WDT_CONTROL_TIMEOUT_MODE == 1u) 123 gAppCallback = pfCallback;
125 if (bEnable ==
true) {
126 NVIC_EnableIRQ (WDT_EXP_IRQn);
129 NVIC_DisableIRQ(WDT_EXP_IRQn);
134 while((pADI_WDT0->STAT & ADI_WDT_SYNC_BITS) != 0u) {
139 ADI_INT_STATUS_ALLOC();
140 ADI_ENTER_CRITICAL_REGION();
145 if (bEnable ==
true) {
147 (0x1u << BITP_WDT_CTL_EN ) |
154 (0x0u << BITP_WDT_CTL_EN ) |
160 ADI_EXIT_CRITICAL_REGION();
174 while((pADI_WDT0->STAT & ADI_WDT_SYNC_BITS) != 0u) {
179 pADI_WDT0->RESTART = ADI_WDT_CLR_VALUE;
193 *pCurCount = pADI_WDT0->CCNT;
208 #if (ADI_WDT_CONTROL_TIMEOUT_MODE == 1u) 209 extern void WDog_Tmr_Int_Handler(
void);
210 void WDog_Tmr_Int_Handler(
void) {
215 if(gAppCallback != NULL) {
217 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