timer/counter2 w ATMega32

Jul 27, 2004 3 Replies

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 wyczytalem

foc2 = (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



nie wiem jak w mega32, ale w mega128 jest dla CS22=1, CS21=1CS20=1 "External clock source on T2 pin. Clock on rising edge"

101 dla 1024

pozdr

Tue, 27 Jul 2004 18:45:20 +0200, na pl.misc.elektronika, Krzysztof Skoroniak napisał(a):

No i dobrze - zerowanie licznika ( przerwanie ) to półokres przebiegu wyjściowego - czyli

2 przerwania na pełny okres, odpowiadający częstotliwości wyliczonej ze wzoru.

U¿ytkownik "Jurek Szczesiul" snipped-for-privacy@wycin.ep.com.pl> napisa³ w wiadomo¶ci news:5rzalke9n3qa.dn0qxfjexrjr$. snipped-for-privacy@40tude.net...

jesli tak jest poprawnie no to dobrze:) bo ja juz nie mialem pomyslow co moglo byc nie tak

tnx

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required