#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>

volatile unsigned int	msec2;
//--------------------------------------------------------------------
ISR (TIMER0_OVF_vect) { //2ms prerusenie
	
	if (++msec2 == 250) {
		msec2 = 0;	PORTB ^= (1<<PORTB5);
	}
	TCNT0 = 131; 
}
//--------------------------------------------------------------------
void InitTC_0 (void)		
{
	TCCR0B |= (1<<CS02); 	//Timer clock = system clock/256
	TIFR0 |= 1<<TOV0;		//Clear TOV0 flag
	TIMSK0 |= 1<<TOIE0;		//Enable Timer0 overflow interrupt
	TCNT0 = 131; 			//Nastavenie hodnoty 2ms/16MHz
}
//------------------------------------------------------------------------------
int main (void) {
	
	wdt_enable (WDTO_1S);
	DDRB |= (1<<DDB5);				//Led 500ms/500ms
	DDRD |= (1<<DDD4);				//Led Out comparator
	
	DIDR1 = (1<<AIN1D);		//Disable Digital Input on AIN1			 								
	ACSR |= (1<<ACBG);		//Enable Internal 1.1V on AIN0	
	InitTC_0();
	sei();

	while(1) { 
		wdt_reset();
		if (ACSR & (1<<ACO)) PORTD |= (1 << PORTD4);
		else PORTD &= ~(1 << PORTD4);
	}
}
//------------------------------------------------------------------------------