Forum Index

Rules  | Points  | Add...  | Recent posts  | Search | Register | Log in



Atmega16A - Atmega16A Tryb CTC na Timerze2 zlicza 2-3razy za wolno


  Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers ->Atmega16A - Atmega16A Tryb CTC na Timerze2 zlicza 2-3razy za wolno Post new topic  This topic is locked 
Author
Hide the left column
Show left column Message
krzys317t
Level 8
Location: Żychlin
Joined: 28 May 2007
Posts: 18
Post rating: 1
krzys317t
Level 8
Post#1 19 Aug 2013 11:11  Topic author   

Atmega16A - Atmega16A Tryb CTC na Timerze2 zlicza 2-3razy za wolno


Witam!
Dopiero zaczynam i nie mogę sobie poradzić z poprawnym zliczaniem w przerwaniu pochodzącym od Timera2 w trybie CTC. Chciałem wykorzystać programowe Timery, które są pomysłem Pana Kardasia (korzystam z jego książki) do tego aby jeden z nich tykał co 1sek. Zacząłem, więc tak: 16MHz/1024/125/125 daje teoretycznie "cyknięcie" co sekundę, a u mnie wychodzi w czasie między 2-3sek. Swoją Atmege 16A taktuję kwarcem 16MHz i fuse bity mam na pewno dobrze ustawione, bo gdy wykorzystuję przy inkrementacji zmiennej funkcję _delay_ms(1000) to zmiany w zmniennej następują idelnie po sekundzie. Gdzie robię błąd? Dodam, że na Timerze1 też miałem podobny problem mimo tego, że tyknięcie było realizowane tylko na 16bitowym rejestrze, a w kodzie przerwania była tylko inkrementacja zmiennej sek. Załączam kod [code]

Code: c
You must be logged in to see the content.


Dodam, że wszelkie zmiany w rejestrze OCR2 nie zmieniają prędkości zliczania. Tu jest błąd, dlatego zlicza w tempie ponad 2 razy wolniejszym. Coś mogłem źle ustawić? Coś mogłem wcześniej przestawić, że nie uC czyta tych wartości w OCRx ?

Helpful post? + 0
Back to top

Google Adsense
Google


Back to top
mattsk
Level 11
Location: Mikołów
Joined: 18 Oct 2009
Posts: 48
Helped: 6
Post rating: 1
mattsk
Level 11
Post#2 19 Aug 2013 14:59    

Re: Atmega16A - Atmega16A Tryb CTC na Timerze2 zlicza 2-3razy za wolno


'Tak na szybko to zwróciłbym uwage na to że Twoje zmienne Timer1,2,3,4 nie ma wartości początkowych...

Helpful post? + 0
Back to top

Google Adsense
Google


Back to top
krzys317t
Level 8
Location: Żychlin
Joined: 28 May 2007
Posts: 18
Post rating: 1
krzys317t
Level 8
Post#3 19 Aug 2013 16:59  Topic author   

Re: Atmega16A - Atmega16A Tryb CTC na Timerze2 zlicza 2-3razy za wolno


One właśnie mają wartość początkową. Gdy zmienne są deklarowane jako globalne na początku programu, to z automatu mają wartość równą 0. Sprawdzałem to w AVRstudio. Nawet jeśli coś by było z nimi nie tak, to do Timer3 ładuję wartość 125, więc ma program z czego odliczać. Także to nie to, bo zliczanie działa. Coś jest na 100% z rejestrem OCR, bo gdy ładuję mu wartość 255, czy 5 to przerwanie cały czas zlicza w tym samym tempie, czyli nieco ponad 2s. Czy można go bezwiednie zablokować? Czy może jestem ślepy i czegoś głupiego nie widzę w swoim programie?

Helpful post? + 0
Back to top

Google Adsense
Google


Back to top
zumek
Level 39
Joined: 08 Oct 2003
Posts: 3370
Helped: 689
Post rating: 33
zumek
Level 39
Post#4 19 Aug 2013 18:50Helpful post    

Re: Atmega16A - Atmega16A Tryb CTC na Timerze2 zlicza 2-3razy za wolno


krzys317t wrote:
... Czy może jestem ślepy i czegoś głupiego nie widzę w swoim programie?

Jesteś :D
A teraz patrz i myśl.


Code: c
You must be logged in to see the content.


Helpful post? + 0
Back to top

Google Adsense
Google


Back to top
krzys317t
Level 8
Location: Żychlin
Joined: 28 May 2007
Posts: 18
Post rating: 1
krzys317t
Level 8
Post#5 19 Aug 2013 19:06  Topic author   

Re: Atmega16A - Atmega16A Tryb CTC na Timerze2 zlicza 2-3razy za wolno


Dzięki zumek :D

To była ślepota, aż wstyd napisać ile czasu przez to straciłem.

Problem tkwił w tym, że nie dałem znaku | przed = . to samo trzeba było zrobić w rejestrze TIMSK.

Temat można zamkknąć

Helpful post? + 0
Back to top
Post new topic  This topic is locked     Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> Atmega16A - Atmega16A Tryb CTC na Timerze2 zlicza 2-3razy za wolno
Page 1 of 1

Similar topics to atmega16A - Atmega16A Tryb CTC na Timerze2 zlicza 2-3razy za wolno

atmega16a - Martwy atmega16a po zmianie JTAGEN (czyli ustawieniu na 1) (2)
ATmega16A - ATmega16A z końcówką A nie działa (28)
[C]Atmega16A,TWI i 24C512 (2)
atmega16a - przerwanie RX w USART (7)
[Atmega16A] PWM i sterowanie silnikiem (7)
Generator przestrajany ATMega16a Bascom (22)
ATTiny2313 i ATMega16a - połączenie SPI (11)
Atmega16A w Bascomie nie działa. (11)
Atmega16a - zmienny pobór prądu. (4)
Atmega16A/l293D - Modulacja PWM (11)


Switch to mobile version Switch to version for desktops

Administrator || Moderators || Forum Rules || General Rules || Cookies information || Editors || Contact for companies || Contact

Page generation time: 0.108 seconds