/* * AtTiny_alarm_clock.c * * Created: 16.07.2018 13:55:13 * Author : dozed */ #include #include #include "lcd4.h" #define butt1 0 typedef enum {CLOCK_INIT = 0, CLOCK_IDLE, CLOCK_ALARM, CLOCK_STOPWATCH_RUNNING, CLOCK_STOPWATCH_STOPPED, CLOCK_STOPWATCH_NOT_SET, CLOCK_USER_INPUT, CLOCK_SET_TIME} clock_state_e; clock_state_e clock_old_state; clock_state_e clock_state = CLOCK_INIT; clock_state_e clock_new_state = CLOCK_INIT; uint8_t t1[] = {' ','H','a','l','l','o','_','_','_','_','_','_','_','_','_','_','_'}; int counter = 0; uint8_t flags; int main(void) { DDRD = 0x00; /* Replace with your application code */ while (1) { clock_state = clock_new_state; switch(clock_state){ case CLOCK_INIT: //do some init stuff... lcd_init(); //I know, it's just c but I don't care lcd_instruct(lcd_DISPLAY_CLEAR); //INIT done -> change to IDLE clock_new_state = CLOCK_IDLE; break; case CLOCK_IDLE: //IDLE MODE //print the IDLE Screen lcd_write_text(0,0,t1); if(((PIND & 0x03) == 3) != (flags & 1<