#define F_CPU 16000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "gpio.h"
#include "lcd.h"
#include "adc.h"
#include "timer.h"
#include "ultrasonic.h"
#include "system.h"
#include "distance_game.h"
#include "light_game.h"
#include "light_sensing.h"
ISR(TIMER0_COMPA_vect) {
}
ISR(TIMER1_COMPA_vect) {
tick1ms++;
}
int main(void) {
initAdc();
initLcd();
initTimer0FastPWM(0x00);
initTimer1CTC_ms(1);
initUltrasonic();
sei();
initSystem();
while (1) {
checkButtons();
handleButtonTransitions();
switch (currentState) {
case STATE_DISTANCE:
handleDistanceState();
break;
case STATE_LIGHT_GAME:
handleLightGameState();
break;
case STATE_LIGHT_SENSING:
handleLightSensingState();
break;
}
}
return 0;
}