timer/counter2 w ATMega32



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Krzysztof Skoroniak" <ananas_at_nospam_NospaM.polsl.gliwice.pl>
Subject: timer/counter2 w ATMega32
Date: Tue, 27 Jul 2004 18:45:20 +0200


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



========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "sobol" <sobol_NOSPAM_at_nospam_misstcp.net>
Subject: Re: timer/counter2 w ATMega32
Date: Tue, 27 Jul 2004 21:23:09 +0200



TCCR2 |= _BV(CS22); //ustawienie dzielnika dla Timera 0
TCCR2 |= _BV(CS21); //dzielnik: 1024
TCCR2 |= _BV(CS20); //

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



========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Jurek Szczesiul <jerzy.szczesiul_at_nospam_wycin.ep.com.pl>
Subject: Re: timer/counter2 w ATMega32
Date: Tue, 27 Jul 2004 21:34:37 +0200


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

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

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.

--
Pozdrowienia
Jurek Szczesiul

========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Krzysztof Skoroniak" <ananas_at_nospam_NospaM.polsl.gliwice.pl>
Subject: Re: timer/counter2 w ATMega32
Date: Tue, 27 Jul 2004 21:52:59 +0200



Użytkownik "Jurek Szczesiul" <jerzy.szczesiul_at_nospam_wycin.ep.com.pl> napisał w
wiadomości news:5rzalke9n3qa.dn0qxfjexrjr$.dlg_at_nospam_40tude.net...
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.


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

tnx



========
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai