ATNEL tech-forum
https://forum.atnel.pl/

Timer z Atmegi 32 Do attiny 2313
https://forum.atnel.pl/topic18421.html
Strona 1 z 1

Autor:  Manianass [ 16 maja 2017, o 19:21 ]
Tytuł:  Timer z Atmegi 32 Do attiny 2313

Mam Książkę "MIKROKONTROLERY AVR JĘZYK C - PODSTAWY PROGRAMOWANIA" i Tam jest opisane na przykładzie Atmegi 32 a ja chce przerobić kod do mojej płytki z AtTiny 2313 chodzi dokładnie o ustawienia TIMER0
Kod:
   // ustawienie TIMER0
   TCCR0A |= (1<<WGM01);            // tryb CTC
   TCCR0A |= (1<<CS02)|(1<<CS00);      // preskaler = 1024
   OCR0 = 38;                     // dodatkowy podział przez 39 (rej. przepełnienia)
   TIMSK |= (1<<OCIE0);            // zezwolenie na przerwanie CompareMatch


to jest kawałek kodu z książki i w 1,3 i 4 linijce jest błąd a nie wiem jak przerobić , mam note pdf z AtTiny ale nie daje rady.

Autor:  Makowka [ 16 maja 2017, o 19:36 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Przecież w bluebooku masz do doskonale wyjaśnione.
Poniżej masz kilka screenów z noty - informacje podane na tacy: :)

TRYB PRACY:

Obrazek

PRESKALER + REJESTR PRZEPEŁNIENIA:

Obrazek

Zezwolenie na przerwanie znajdziesz stronę niżej (87 str.).
Przeczytaj koniecznie ten rozdział o timerach w bluebooku (przy okazji multipleksowania).

Pozdr.

Autor:  Manianass [ 16 maja 2017, o 19:52 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Porównywałem to do BlueBooka ale jakoś nie wiem co mam poustawiać pozmieniać żeby zadziałało .

Autor:  Makowka [ 16 maja 2017, o 20:10 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

No tam gdzie jest 1 w tabelce masz ustawić bit na stan wysoki w danym rejestrze. Wszystko masz w nocie.
Na pewno czytałeś niebieską książkę? 8-)
Czy tylko porównujesz kod?

Pozdr.

Autor:  Manianass [ 16 maja 2017, o 20:49 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Przerobiłem to na
Kod:
// ustawienie TIMER0
   TCCR0A |= (1<<WGM01);            // tryb CTC
   TCCR0A |= (1<<CS02)|(1<<CS00);      // preskaler = 1024
   OCR0A = 38;                     // dodatkowy podział przez 39 (rej. przepełnienia)
   TIMSK |= (1<<OCIE0B);            // zezwolenie na przerwanie CompareMatch

kompilacja przeszła ale jeszcze nie działa wiec szukam dalej .

A książkę czytałem i czytam nadal

Autor:  Daro69 [ 16 maja 2017, o 21:26 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Witam,
a sygnał zbierasz z PB3 czy z PB4 ?
Obrazek

Autor:  Manianass [ 17 maja 2017, o 05:14 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Zadnych sygnałow nie zbieram wyświetlacz led mam podłączony do portu B0 - B7 i D3 - D6

Autor:  Daro69 [ 17 maja 2017, o 06:35 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
?

Autor:  mirekk36 [ 17 maja 2017, o 07:38 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Manianass napisał(a):
TCCR0A |= (1<<CS02)|(1<<CS00);      // preskaler = 1024


typowy błąd, powtarzany wciąż przez początkująych, którym wydaje się, że skoro korzystają z kanału A to znaczy że wszystkie bity są w rejestrze z literką A na końcu. Warto jednak zajrzeć do noty PDF na rozpiskę bitów w rejestrach a nie na czuja robić

Autor:  Manianass [ 17 maja 2017, o 15:40 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Ale Nic mi nie daje patrzenie w pdf nie wiem co wstawić. Nie kumam tego dlatego licze na waszą pomoc a w książce jest opisane ale jak dla Mnie to jakoś ... i nie mogę tego przeskoczyć

Autor:  mirekk36 [ 17 maja 2017, o 16:48 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Manianass napisał(a):
Ale Nic mi nie daje patrzenie w pdf

To może opisz co widzisz i rozumiesz z tego PDF'a jeśli chodzi o rejestry a czego nie rozumiesz - łatwiej będzie podpowiedzieć

------------------------ [ Dodano po: 1 minucie ]

Manianass napisał(a):
Nie kumam tego

No ale czego nie kumasz ?

------------------------ [ Dodano po: 2 minutach ]

Manianass napisał(a):
dlatego licze na waszą pomoc

Czyli na jaką ?

Jak sam widzisz, żeby uzyskać dobrą pomoc warto CHOCIAŻ ODROBINĘ się wysilić , odrobinę i porządnie opisać problem - a tobie nawet tego nie chce się zrobić? ... ja po twoim opisie to nawet nie wiem czego ty nie kumasz

Autor:  Manianass [ 17 maja 2017, o 16:59 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

P. Mirku
Che przenieść program z Atmegi32 na Attiny2313 czyli z książce jest przykład opisany na Atmege a ja jej fizycznie nie posiadam.
A problem jest w tych 4 linijkach kodu kompilator wyświetla błędy. Nie wiem jak skonfigurowac TIMER0 do pracy w trybie CTC z podziałem 1024
i zezwolić na przerwanie typu Compare Match.

Autor:  xentis [ 17 maja 2017, o 17:12 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Tu masz notę http://www.atmel.com/images/doc8246.pdf
Na stronie 84 masz tabelkę z rozpiską trybów pracy timera0.
Tryb CTC to mode 2 czyli trzeba ustawić WGM01 w rejestrze TCCR0A.

Na stronie 86 tej samej noty masz kolejną tabelkę z rozpiską preskalera:
dla podziału 1024 widać że trzeba ustawić CS00 i CS02 w rejestrze TCCR0B

Rejestr porównania nazywa się tak samo więc dodatkowy podział przez 38 wygląda tak samo.

Przy aktywacji przerwania bit odpowiedzialny za przerwanie Compare Match A nazywa się OCIE0A i należy go ustawić w rejestrze TIMSK o czym możesz przeczytać na stronie 87.

Mam nadzieję że powyższe posłuży Ci nie tylko do przeklepania wartości do kodu programu, ale również do przeanalizowania w nocie pdf co za co jest odpowiedzialne. Na prawdę nie jest to trudne trzeba tylko na spokojnie pochylić się nad notą...

Autor:  Manianass [ 17 maja 2017, o 17:25 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Ustawiłem tak kompilujue sie ale wyswietla ostrzezenia że cos nie tak
oto kod
Cytuj:

TCCR0A |= (1<<WGM01); // tryb CTC
TCCR0B|= (1<<CS02)|(1<<CS00); // preskaler = 1024
OCR0A = 38; // dodatkowy podział przez 39 (rej. przepełnienia)
TIMSK |= (1<<OCIE0B);

Autor:  xentis [ 17 maja 2017, o 17:35 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Dla czego w TIMSK ustawiasz OCIE0B?
Manianass napisał(a):
wyswietla ostrzezenia że cos nie tak

Kolego ale ostrzeżenia nie wyświetlają się "że coś nie tak". Musisz podać co konkretnie i przy czym nie podoba się kompilatorowi bo obecnie kawy nie piję więc nie mogę powróżyć z fusów... taki żarcik - tylko bez obrazy ;)

Autor:  Manianass [ 17 maja 2017, o 18:20 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Takie ostrzeżenie

./d_led.c:58:5: warning: 'TIMER0_COMP_vect' appears to be a misspelled signal handler [enabled by default]
ISR(TIMER0_COMP_vect)

A kod w tej linijce wygląda tak.
Cytuj:
ISR(TIMER0_COMP_vect)

Autor:  xentis [ 17 maja 2017, o 18:25 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Nazwa wektora przerwania jest inna
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  Daro69 [ 17 maja 2017, o 19:18 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

witam, @Manianass .
Czy pracujesz w środowisku ECLIPSE ? (polecam)
W ECLIPSE jest fajny skrót klawiszowy "Ctrl + spacja". :)
Po ustawieniu właściwego uc, pomaga błyskawicznie odnaleźć istniejący rejestr.
Pozdrawiam.

Autor:  Manianass [ 17 maja 2017, o 20:25 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Tak korzystam z Eclipsa.

Chyba jestem za słaby do C-AVR

Avr programuje w Bascomie jakoś programowanie tam mi idzie lepiej.
Normalnie pisze proste Aplikacje w Builder C++

Autor:  xentis [ 17 maja 2017, o 20:50 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Oj tam zaraz za słaby. Jak siedziałeś w innym języku programowania może po prostu musisz się przestawić... No i musisz się starać analizować to co do Ciebie mówi kompilator. Na pierwszy rzut oka może trochę straszą te warningi ale tak na prawdę nawet jak nie jesteś biegły w angielskim to zawsze możesz skorzystać z dobrodziejstw wujka https://translate.google.pl może nie działa to idealnie ale zazwyczaj naprowadzi na właściwą ścieżkę ;)
A prawda jest taka że "Nie od razu Rzym zbudowano", każdy się kiedyś uczył od zera, ba nawet ciągle się uczy (i jak to mówią głupi umiera hehe). A grunt to się nie poddawać i starać się na różne sposoby pozyskiwać wiedzę. Czasem spojrzenie z innej perspektywy, czy inny przykład w danym zagadnieniu powoduje olśnienie i wszystko staje się jasne...

Autor:  Daro69 [ 17 maja 2017, o 21:02 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Manianass napisał(a):
Chyba jestem za słaby do C-AVR

No nieeee.... :?
Zapomnij o tym zdaniu. :)
A ja nie programuje w Bascomie. bo "za słaby jestem" :lol:
No właśnie...... kiedyś może się pouczę. ;)
(na razie niestety brak trochę czasu i zapotrzebowania z mojej strony) :?

Autor:  Manianass [ 17 maja 2017, o 21:38 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

W baskomie skonfigurowanie 2 Timerów wygląda tak z podziałem przez 64
Kod:
Config Timer0 = Timer , Prescale = 64 : Config Timer1 = Timer , Prescale = 64

odblokowanie przerwań
Kod:
Enable Interrupts : Enable Timer0 : Enable Timer1   


I na deser obsługa co ma się wykonać w danym przerwaniu nazwane
Kod:
On Timer0 Wykonaj_Co4ms: On Timer1 Wykonaj_Co1s 



Szkoda ze nie udaje mi się na razie w C tego zrobić ale z czasem możne mi się uda !
A na razie poszukam czegoś łatwiejszego do zrobienia :)
Sterownik do 3 rolet miało być przez Wifi (moduł atb ) ale jak nie umiem włączyć Taimerka to co dopiero UDP.
Ale postaram się zrealizować plan Kiedyś jak się na uczę :)

Autor:  Daro69 [ 17 maja 2017, o 22:15 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Manianass napisał(a):
W baskomie skonfigurowanie 2 Timerów wygląda tak

A w C dla ATtiny_2313 ustawienie jednego Timera_0 wygląda tak np.
- jeżeli się sie machnąłem tak na biegu :)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

:)

Autor:  Makowka [ 18 maja 2017, o 10:10 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

To na prawdę nie jest trudne.
Zachęcam cię, przeczytaj rozdział o multipleksowaniu - wyświetlacz LED.
Tam masz od początku omówione wyczytanie z noty i ustawienie tego w uC.

Pare stron i problem z głowy. ;)

Pozdr.

Autor:  Manianass [ 18 maja 2017, o 16:45 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Wpisałem tak jak Daro69 podpowiedział zmieniłem tylko OCR0 na OCR0A i działa, ale zawsze jest cos co początkujący nie kuma :(
A wiec problem jest taki ze wyświetla tylko jeden z 4 wyświetlaczy bo w Atmedze32 wyświetlacze są podłączone do Portu C do 4 młodych bitów i zrobiona jest maska na nie a ja na mojej płytce (nie stykówce) mam podłączone do portu D a dokładnie do PD3,PD4,PD5 i PD6 i dlatego działa tylko jeden wyświetlacz PD3 bo zalicza się do młodszej części bitu.
Kod:
#define    CA1    (1<<PD3)      // CA1 oznacza bit nr.0 portu C
#define    CA2    (1<<PD4)      // CA2 oznacza bit nr.1 portu C
#define    CA3    (1<<PD5)      // CA3 oznacza bit nr.2 portu C
#define    CA4    (1<<PD6)      // CA4 oznacza bit nr.3 portu C


jak podłączyłem kabelkami młode piny do wyjśc na płytce to działa wysmienicie tylko ze mam wolny tylko 1 pin z całej atiny w takiej konfiguracjii.

Autor:  Daro69 [ 18 maja 2017, o 17:28 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

witam, wypatrzyłeś OCR0. :) ja przegapiłem. :?
Manianass napisał(a):
A wiec problem jest taki ......

jest i na to sposób, ale proponuję założyć nowy wątek i nadać mu tytuł związany z anodami. ;)

------------------------ [ Dodano po: 13 minutach ]

albo pomyszkować np. tu :
topic16164-30.html
może coś się przyda. :)

Autor:  Manianass [ 18 maja 2017, o 18:17 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

ładny tasiemiec tam powstał tylko ze ja już mam działający program tylko maskowanie żeby zmienić, bo tamten kod to raczej do testów jak ktoś ma potrzebę.
Załoze nowy temat a jak sie nie uda tego przerobić to w układzie jak bede budował kiedyś to podłącze Cyferblaty do PD0-PD3 :)

Autor:  Makowka [ 18 maja 2017, o 20:48 ]
Tytuł:  Re: Timer z Atmegi 32 Do attiny 2313

Manianass napisał(a):
a jak sie nie uda tego przerobić to w układzie jak bede budował kiedyś to podłącze Cyferblaty do PD0-PD3 :)


Moim zdaniem to nie jest dobre podejście do próby radzenia sobie z problemami. Masz jeszcze braki z bluebooka i będzie ci ciężko się ruszyć dalej bez opanowania podstaw.
Ja absolutnie nie uważam się za żadnego specjalistę, też jestem początkujący. :D
Na twoim miejscu spróbowałbym powoli, na spokojnie wraz z książką po kolei wykonywać zadania (po przeczytaniu części teoretycznej). Wtedy większość problemów zniknie. ;)

Ale to już twoja decyzja.

Pozdr.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/