static void tui_alarm_deactivate(void) { buttons_lock(0); backlight_lock(0); #ifdef ALARMCLOCK relay_set(RLY_MODE_OFF); #endif tui_alarm_active = 0; }
static void tui_alarm_setstate(uint8_t t) { if (t) { backlight_simple_set(16); #ifdef ALARMCLOCK if (t==2) { relay_set(RLY_MODE_ON); } else { // 0.15s Bzzt (10% duty), 10ms period for (uint8_t z = 0;z<15;z++) { relay_set(RLY_MODE_ON); timer_delay_ms(1); relay_set(RLY_MODE_OFF); timer_delay_ms(9); } } #endif } else { #ifdef ALARMCLOCK relay_set(RLY_MODE_OFF); #endif backlight_simple_set(0); } }
int main() { WDTCTL = WDTPW | WDTHOLD; P1DIR |= RELAY_SET_PIN | RELAY_RESET_PIN; relay_setup(); #ifndef USE_LED_PINS P1DIR |= BIT0; P1OUT |= BIT0; #endif // The button is input by default: //P1DIR &= ~BIT3; P1REN |= BIT3; P1OUT |= BIT3; // wait to button press while (P1IN & BIT3) { #ifndef USE_LED_PINS P1OUT ^= BIT0; delay_ms(500); #endif } #ifndef USE_LED_PINS P1OUT &= ~BIT0; #endif while (1) { relay_set(); delay_ms(DELAY); relay_reset(); delay_ms(DELAY); } }
static void tui_relaymenu(void) { uint8_t sel; sel = tui_gen_listmenu(PSTR("RELAY MODE:"), tui_rm_table, 3, relay_get_mode()); relay_set(sel); }