witam
znowu mam problem z tym procesorem ATMega32 mecze sie caly dzien i nie moge dojsc do niczego, moze ktos tutaj cos poradzi otoz mam kawalek kodu ktory inicjalizuje mi timer2:
//inicjalizacja wszystkich przerwan ----------------------------------------- sei (); //ustawia bit7 w SREG na 1
//zapisanie wartosci do OCR2 OCR2 = 53;
TCCR2 |= _BV(CS22); //ustawienie dzielnika dla Timera 0 TCCR2 |= _BV(CS21); //dzielnik: 1024 TCCR2 |= _BV(CS20); //
TCCR2 |= _BV(WGM21); //ustawienie trybu pracy CTC TCCR2 &= ~_BV(WGM20); //
//wlaczenie timera TIMSK |= _BV(OCIE2); }
SIGNAL(SIG_OUTPUT_COMPARE2) { }
po takim kodzie funkcja SIGNAL powinna sie wykonywac
100 razy na sekunde poniewaz ze wzoru z pdfa do tego proca wyczytalemfoc2 = (f i/o) / [2*N*(1+OCR2)]
dla mojego kwarcu 11059200 dzielnika N = 1024 oraz wartosci OCR2 = 53 foc2 powinna byc rowna 100 a wiec
100 razy na sekunde powinno byc wywolywane przerwanie a u mnie wykonuje sie 2 razy czesciej jak wywale 2 z mianownika tego wzoru to sie niby wszytsko zgadza, ale nie lubie takich niewyjasnionych sytuacji bo skoro we wzorze ona jest to raczej powinna tam byc czy moze ktos ma jakis pomysl co sie dzieje ???pozdr Krzysztof