37 lines
720 B
C
37 lines
720 B
C
//
|
|
// Created by cfif on 24.02.2025.
|
|
//
|
|
#include "at32f435_437.h"
|
|
#include "wdt_timer.h"
|
|
#include "SystemDelayInterface.h"
|
|
|
|
void Wdt_Start() {
|
|
|
|
if (crm_flag_get(CRM_WDT_RESET_FLAG) != RESET) {
|
|
// reset from wdt
|
|
crm_flag_clear(CRM_WDT_RESET_FLAG);
|
|
}
|
|
|
|
// disable register write protection
|
|
wdt_register_write_enable(TRUE);
|
|
|
|
// set the wdt divider value
|
|
wdt_divider_set(WDT_CLK_DIV_4);
|
|
|
|
/* set reload value
|
|
|
|
timeout = reload_value * (divider / lick_freq ) (s)
|
|
|
|
lick_freq = 40000 Hz
|
|
divider = 4
|
|
reload_value = 3000
|
|
|
|
timeout = 3000 * (4 / 40000 ) = 0.3s = 300ms
|
|
*/
|
|
wdt_reload_value_set(3000 - 1);
|
|
|
|
// enable wdt
|
|
wdt_enable();
|
|
}
|
|
|