int main() { /* IOCON_PIO1_5 = 0x000000d0; GPIO1DIR |= 1 << 5; GPIO1MASKED[1 << 5] = 0; for (int i = 0;; i++) { GPIO1MASKED[1 << 5] = i; } */ matrixled_init(); ux_init(); #if ENEBLE_WDT == 1 slowClock(); #endif #if SYSTICK_WAIT == 1 #if ENEBLE_WDT == 1 InitSysTick(120000); #else InitSysTick(12000); // 12,000,000Hz 12,000 -> 10 = 1ms #endif #endif #if ENEBLE_WDT == 0 initUART(); #endif /* for (;;) { playMML("C"); println("TEST\n"); toggleSounder(); wait(10000); } // uart(); */ // bitman(); // bitman2(); for (;;) { if (!ux_state()) { break; } WAIT(10); } for (;;) { animate(DATA_ANIM, LEN_DATA_ANIM); app_mikuji(); // app_keytest(); app_renda(); } return 0; }
int main() { cli(); disableWatchdog(); slowClock(); initBuzzer(); initSwitch(); initADC(); #ifdef DEBUG uint16_t v = getVoltage(); uint16_t i; for (i = 0x8000; i != 0; i >>= 1) { if (v & i) { dit(); } else { dah(); } _delay_ms(1000); } #endif // Retrieve the current warning timeout from eeprom uint8_t warn_min = eeprom_read_byte(&cfg_warn_min); if (switchPressed()) { number(warn_min); // pause between increments _delay_ms(3000); } // If switch is depressed (at power up), begin increasing // warning time, in 5-minute increments, max 30 minutes // SOS time is 2 x warning time. // while (switchPressed()) { if (switchPressed()) { // Increment warning time by 5 minutes warn_min += 5; // Maximum warning time is 30 minutes if (warn_min > 30) warn_min = 5; // Save the new warning time eeprom_update_byte(&cfg_warn_min, warn_min); } number(warn_min); // pause between increments _delay_ms(3000); } // Compute the number of seconds for warning and SOS warn_sec = warn_min * 60; sos_sec = warn_sec * 2; if (checkVoltage()) { ok(); } else { sos(); } enableWatchdog(); sei(); while (1) { set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_mode(); } }