#include // knihovna obsahujici definice regstrů procesoru #define F_CPU 1000000UL // info o frekvenci mcu pro prekladac (1MHz) #include // knihovna obsahujici funkce pro zpozdeni #define SETBIT(ADDRESS,BIT) ((ADDRESS) |= (1<<(BIT))) // nastaví bit #define CLRBIT(ADDRESS,BIT) ((ADDRESS) &= ~(1<<(BIT))) // nuluje bit #define NEGBIT(ADDRESS,BIT) ((ADDRESS) ^= (1<<(BIT))) // neguje bit #define TSTBIT(ADDRESS,BIT) ((ADDRESS) & (1<<(BIT))) // testuje bit void main(void) { // program začíná zde // všechny piny jsou po resetu jako vstupy SETBIT(DDRB, PB1); // nastavit PB1 jako výstup (= zapnu spínač: registr DDRB) SETBIT(DDRB, PB0); SETBIT(PORTB, PB1); // nastavit na PB1 jedničku (= přivede na nožku jedničku: registr PORTB) for(;;) { _delay_ms(500); // pockat 0.5s if(TSTBIT(PINB, PB0)) // Test jesli je na potru B "1" na pinu PB1 { CLRBIT(PORTB, PB0); // vynulovat PB0 } else { SETBIT(PORTB, PB0); // nastavit na PB0 jedničku } NEGBIT(PORTB, PB1); // negace pinu PB1 } }