/* * AVRGCC4.c * * Created: 2.2.2015 7:23:52 * Author: PC */ // knihovny #include #include #define F_CPU 1000000UL #include volatile uint8_t i; ISR(INT0_vect){ // toto se provadi pri preruseni GICR &= ~(1 << INT0); i++; } ISR(INT1_vect){ GICR &= ~(1 << INT1); i--; } int main(void) { DDRA = 0b11111111; // vsechny piny portu A jako vystupni DDRD &= ~(1 << PD2); // pin 2 portu D vstupni PORTD |= (1 << PD2); // zapis jedna aktivuje pull up rezistor, ten privede na pin 2 portu D napeti PORTD |= (1 << PD3); // pomoci tlacitka spojene s GND na nej privedeme 0 MCUCR |= (1 << ISC01); // sestupná hrana na vstupu preruseni INT0, preruseni se spusti pri prechodu 1 na 0 (zmacknuti tlacitka); MCUCR |= (1 << ISC11) ; GICR |= (1 << INT0); // povol preruseni od INT0 GICR |= (1 << INT1); sei(); // povol globalni preruseni while(1) { _delay_ms(400); for(i; i <=63; i++); PORTA = i; GICR |= (1 << INT0); GICR |= (1 << INT1); } }