CodeVisionAVR Timer

Oct 05, 2004 4 Replies

Wiutam. Czy może ktoś wie: Jak odczytać ilość impoulsów podanych w ciągu jednej sekundy na T0. Z góry dziękuję za odpowiedź.



Użytkownik Pinarczuk napisał:

CodeVision to chyba tylko kompilator więc racej nie poda Ci ile impulsów weszło do procka z zewnątrz

U¿ytkownik "Pinarczuk" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@newsgate.onet.pl...

Skonfigurowaæ Timer/Counter0 aby pracowa³ z zewnêtrznym ¼ród³em zegara. A pó¼niej w pêtli co sekundê odczytywaæ rejest licznika T0 i nastêpnie go zerowaæ. Odmierzanie czasu jednej sekundy mo¿esz zrobiæ na innym Timerze.

K.

A jak używam jeszcze UARTu.?

U¿ytkownik "Pinarczuk" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@newsgate.onet.pl...

Podstawowe pytanie, jaki masz kwarc przy uC ?

Za³ó¿my ¿e 7,3728MHz.

Wiêc, Timer1 konfigurujesz aby overflow wywo³ywa³ przerwanie "Timer/Counter1 Overflow" oraz aby by³ "napêdzany" zegarem clk/8, czyli 921,6kHz. Przerwanie Overflow w takim przypadku zostanie wywo³ane 14,0625 raza na sekundê. (921600 / 65536 = 14,0625) I wystarczy ¿e w ciele funkcji przerwania bêdziesz odlicza³ od 0 do 14, i przy 14 zatrzymywa³ T0, odczytywa³ rejestr jego licznika do jakiej¶ zmiennej, zerowa³ ten rejest, puszcza³ T0 dalej w ruch i zaczyna³ liczenie do 14 od nowa.

A poniewa¿ Timer0 jest 8bitowy i maksymalna ilosc impulsow jakie mo¿e zliczyæ to 256, musisz i tutaj wykorzystaæ przerwanie Overflow tego timera. I za kazdym jego wywo³aniem musisz dodawaæ 256 do warto¶ci zmiennej, w któr± zapisuje przerwanie Overflow timera T1. Chyba ¿e 256 imp. na sekundê to dla Ciebie wystarczaj±co du¿o, nie musisz wklepywaæ w program tego akapitu.

W tym momencie masz pomiar oparty na przerwaniach i mo¿esz spokojnie obs³ugiwaæ sobie UART w g³ownej pêtli programu, czy jak tam sobie chcesz.

Brzmi to strasznie skomplikowanie, mo¿e nawet sam troche to zakrêci³em ;-)))) Ale to proste do zaprogramowania.

K.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required