/* fcpu = 16MHz generovana frekvence = 4kHz */ #include #include #define port_pipaku PORTB #define ddr_pipaku DDRB #define pipak PB5 void tim0_start(void); int main(void) { //----------------------------------------------------- mcu init ddr_pipaku |= 1< f=62.5kHz, T=16us TIMSK |= 1< T=250us, zmena pinu kyzdych 125us perioda citace 16us -> citac se musi otocit 7.8125 krat tedy 7 x bez prednastaveni a 1x s prednastavenim 1-0.8125 z rozsahu citace tj. (1-0.8125)*256 = 48 */ static unsigned char count = 0; //static urcuje, ze promenna zustane v pameti nezmenena i po opusteni obsluhy preruseni // if(++count > 7) { TCNT0 = 48; //prednastaveni, ve skutecnosti by to melo byt //mensi cislo (doba reakce na preruseni a predchozi instrukce) count = 0; port_pipaku ^= 1<