#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
//#include <avr/wdt.h>

//------------------------------------------------------------------------------
void WDT_Prescaler_Change(void) {
	asm("CLI");							                 //Disable interrupt
	asm("WDR");							                 //watchdog reset
	WDTCSR |= (1<<WDCE) | (1<<WDE);		                 //Start timed sequence
	WDTCSR = (1<<WDE) | (1<<WDP2) | (1<<WDP0);			//Set time-out  0.5s
	//WDTCSR = (1<<WDE) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0); //Set time-out 2s
	asm("SEI");
}
//------------------------------------------------------------------------------
int main (void) {
	
	DDRB |= (1<<DDB5);					//Nastavi vyvod LED na vystup
	PORTB |= (1<<PORTB0)|(1<<PORTB1);	//PB0 a PB1 pull-up ON
	//WDT_Prescaler_Change();
    //wdt_enable(WDTO_500MS); 
	    
	while(1) { 
		//asm("WDR");		
        //wdt_reset();
        asm("nop"); asm("nop");
		switch (PINB & 0x03) {
			case 1:		PORTB |= (1<<PORTB5);
						break;
			case 2:		PORTB |= (1<<PORTB5);
						_delay_ms(100);
						PORTB &= ~(1<<PORTB5);
						_delay_ms(1000);
						break;
			case 3:		PORTB &= ~(1<<PORTB5);
						break;
		}
	}
}
