Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 14 sty 2026, o 04:46


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 30 kwi 2017, o 00:33 
Offline
Nowy

Dołączył(a): 23 kwi 2017
Posty: 3
Pomógł: 0

Witam Forumowiczow,
nie jestem jeszcze zbyt biegly w c (bardziej noga) ale staram sie i ucze.
Ale od poczatku potrzebuje ogarnac sobie timer zliczajacy 50us na faling/rasing.
generalnie timerek ktory bedzie przechowywal wartosci zliczone maxymalana wartos policzona to 4.5ms
ale pojawil mi sie problem gdyz nie zabardzo wiem jak mam ustawic timery w prawidlowy sposob udalo mi sie policzyc ze dla zakladanego czasu jakie chce uzyskac powinieniem uzyc prescalera 8
Udalo mi sie cos takiego napisac:

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


co sadze ze ma prawo bytu i dzialania ale teraz jak z aktywowac timery i jak to obsluzyc w programie.
Wszelkie podpowiedzi naprowadzenia vektory mile widziane.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2017, o 14:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Nie podejmuję się nauczania od podstaw ale rozwiń to
Moriusz napisał(a):
...ogarnac sobie timer zliczajacy 50us na faling/rasing.

bo na razie
Moriusz napisał(a):
...co sadze ze ma prawo bytu i dzialania ale

prawo bytu ma, ale działania...

Pozdr.

P.S
...a co z interpunkcją i polskimi znakami? ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2017, o 17:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć

tak na szybko dla timera 2

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


teraz w przerwaniu Timera robisz co tam chcesz - zliczasz, dodajesz, odejmujesz itd.
Tu masz opis timerów dla ATMegi328 https://sites.google.com/site/qeewiki/books/avr-guide/timers-on-the-atmega328

Zwróć uwagę, że tak duża częstotliwość przerwań wiąże się z niebezpieczeństwem, że jak napiszesz procedurę obsługi która zajmie więcej niż Twoje zakładane 50us to leżysz bo procek nie zdąży wykonać obsługi przerwania a już nastąpi kolejne.

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2017, o 08:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

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


:oops: :oops: :oops:

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2017, o 20:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

:) Tu się akurat nic nie stało jeżeli chodzi o ustawienie rejestru. ;)
Tylko czytelność się zamazała troszkę.
zarówno WGM01 jak i WGM21, mają tę samą wartość. "1".
TCCR2A |= (1<<1); .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2017, o 11:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Też nie jestem programistą, a mój post mam nadzieję nie został odebrany jako uszczypliwość. :roll:
Bawimy się ustawianiem rejestrów na codzień i jesteśmy w stanie wyłapać że to tylko literówka która wynikowo nic nie zmienia,
ale ( tu masz rację ;) ) jeżeeli gdzieś w pośpiechu omknie się paluch, to wypada to wskazać . Nie sądzę by kolega "mczarny" się za to obraził. :)
post napisałem tylko informacyjnie dla ewentualnych zaczynających zabawę z mikrokontrolerami czytelników. :D
pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lip 2017, o 12:09 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

Witam,
trochę czasu minęło od ostatniego postu w tym wątku, ale ja właśnie też natknąłem się na taki zapis z YB Mirka i długo nie mogłem się połapać (niestety raczkuję w programowaniu) skąd taki zapis:

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


Rozumiem, że to będzie działało ale nie zgadzało mi się to z notą. Czy dobrze myślę, że zapis:

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


jest poprawny, a ten powyżej to literówka jak wspominał Daro69? Według mojego zrozumienia noty tak, ale chciałbym się utwierdzić w tym przekonaniu :)

Pozdrawiam

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lip 2017, o 13:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Przeczytaj uważnie ostatnie posty, tam jest wytłumaczone. :)
Każdy rejestr ma bit_1 (drugi od prawej).
1<<1 oznacza jedynka przesunięta w lewo o jeden.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lip 2017, o 15:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Ok, zerknij na rejestry:
w tych przypadkach ustawiamy bit drugi od prawej. (1<<1) .
(1<<WGM01) efekt identyczny (1<<WGM11) i to też (1<<WGM21). :)
ObrazekObrazek
ponieważ waga tych makr to 1.
Dla lepszej czytelności kodu ustalono że jedynka
dla timer_0 to WGM01,
dla timer_1 to WGM11,
dla timer_2 to WGM21,
To są makra pod którymi kryje się ta sama wartość 1. możesz nawet to zapisać tak TCCR2A |=(1<<1);
mało czytelnie ale zadziała identycznie.
pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2017, o 09:49 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

Daro69,

dziękuję za zainteresowanie. Ja rozumiem, że mogę tam wpisać wszystko co (w uproszczeniu) jest "jedynką", przesunąć w lewo i działa :) Mi chodziło o to, że pogubiłem się dlaczego w nocie jest inaczej niż w YB. Doszukiwałem się drugiego dna - pewnie niepotrzebnie :)

Pozdrawiam

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO