void watchdog_init(void) { #ifdef CONFIG_WATCHDOG watchdog_set(WDT_MAX_TIMEOUT); #else watchdog_set(WDT_OFF); /* no timeout */ #endif }
void main_sigrtmin(int sig) { bool watch = watchdog_get(); if (watch) { WATCHDOG_ERROR(); } else { watchdog_set(); } }
int do_sunxi_watchdog(cmd_tbl_t *cmdtp, int flag, int argc, const char *argv[]) { unsigned long interval; if (argc < 2) { printf("usage: watchdog seconds\n"); printf("over %d to disable watchdog\n", WDT_MAX_TIMEOUT); } interval = simple_strtoul(argv[1], NULL, 10); watchdog_set((unsigned int)interval); return 0; }
void watchdog_init(void) { watchdog_set(WDT_OFF); /* no timeout */ }
int main(void) { watchdog_clear_status(); #ifdef USING_PRINTF serial_init(); #endif cli(); clear_radio_strings(); system_schedule = new_schedule(); //Be aware: order may matter, especially with si4703/5_init and nokia5110_init. (they all share a reset pin) watchdog_set(WD_INTERRUPT_AND_SYSTEM_RESET, WD_TIMEOUT_1_S); set_data_directions(); timer0_pwm_prescaler_compare_A(0, 3, true, false); timer1_pwm_prescaler_compare(0, MAX_BRIGHTNESS, 1, 1, false, false); timer2_ctc(0.001, true); nokia5110_spi_init(0x51); i2c_init(); nokia5110_power_on(); set_volume(0); ADC_init(ADC_PC3, ADC_NO_TRIGGER, ADC_REFERENCE_1V1, true, true); //ADC_TIMER0_OVERFLOW sei(); ds1307_getdate_s(&time); //If the clock isn't set, it reads all values as zero. Set a default time if (time.year == 0) { ds1307_setdate(14,10,21,12,28,30); } time_alarm_A.hour = eeprom_read_byte(&alarm_A_hours); time_alarm_A.minute = eeprom_read_byte(&alarm_A_minutes); alarm_A_is_beep = eeprom_read_byte(&alarm_A_tone_setting); if (time_alarm_A.hour >= time_limits[hours]) { time_alarm_A.hour = 0; eeprom_update_byte(&alarm_A_hours, time_alarm_A.hour); } if (time_alarm_A.minute >= time_limits[minutes]) { time_alarm_A.minute = 0; eeprom_update_byte(&alarm_A_minutes, time_alarm_A.minute); } if (alarm_A_is_beep > true) { alarm_A_is_beep = true; } time_alarm_B.hour = eeprom_read_byte(&alarm_B_hours); time_alarm_B.minute = eeprom_read_byte(&alarm_B_minutes); alarm_B_is_beep = eeprom_read_byte(&alarm_B_tone_setting); if (time_alarm_B.hour >= time_limits[hours]) { time_alarm_B.hour = 0; eeprom_update_byte(&alarm_B_hours, time_alarm_B.hour); } if (time_alarm_B.minute >= time_limits[minutes]) { time_alarm_B.minute = 0; eeprom_update_byte(&alarm_B_minutes, time_alarm_B.minute); } if (alarm_B_is_beep > true) { alarm_B_is_beep = true; } channel = eeprom_read_word(&saved_channel); if (channel < SI4705_FM_LOW || channel > SI4705_FM_HIGH) channel = 889; for (err = 0; err < NUMBER_OF_PRESETS; err++) { presets[err] = eeprom_read_word(&saved_presets[err]); if (presets[err] < SI4705_FM_LOW || presets[err] > SI4705_FM_HIGH) presets[err] = 945; } ms_clock = 0; while(true) { if (is_fresh) { is_fresh = false; check_schedule(); switch(state) { case home: home_state(); break; case menu: menu_state(); break; case set_clock: set_clock_state(); break; case set_alarm_A: case set_alarm_B: set_alarm_state(); break; case alarm_A: case alarm_B: alarm_state(); break; case radio: radio_state(); break; case preset: preset_state(); break; default: break; } init = false; state_handler(); watchdog_entertain(); } } }