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



Teraz jest 28 mar 2026, o 17:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 3 paź 2015, o 12:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Witam
Siedzę i grzebie a może nie warto.
Czy jest możliwe w tiny13 uzyskać licznik czasu i programowe pwm za pomocą jednego Timera??
Licznik nie musi być dokładny +-kilka minut na godzinę.
Jedno i drugie mam już zrobione ale osobno. Próba połączenia tego w całość mi nie wychodzi.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2015, o 12:33 
Offline
Użytkownik
Avatar użytkownika

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

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

"takt" możesz mnożyć do woli ;)

Pozdr


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2015, o 14:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Rozumiem że timer w trybie Pwm a za pomocą tego taktu mam sobie liczyć czas?

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2015, o 15:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Możesz uruchomić timer w trybie PWM, co da ci dwa sprzętowe kanały PWM. I jednocześnie odblokować przerwania od przepełnienia Overflow
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W trybie PWM licznik TCNT0 wciąż cyklicznie się kręci od zera do wartości TOP (w przypadku PWM 8-bit TOP wynosi 255). I za każdym razem gdy TCNT0 wynosi zero ustawiana jest flaga TOV0 i jeśli przerwania są odblokowane to również przerwanie Overflow jest zgłaszane.

Przy trybie FAST PWM przerwanie będą zgłaszane dwa razy częściej niż przy trybie PHASE CORRECT PWM bo w tym pierwszym licznik liczy od zera do wartości TOP, potem następuje wyzerowanie i znów od zera do wartości TOP. W trybie PHASE CORRECT licznik liczy od zera do TOP, potem od TOP do zera i znów od zera do TOP. Czyli wartość zero w TCNT0 pojawia się dwa razy rzadziej. A co za tym idzie przerwanie też wywoływane jest dwa razy rzadziej niż w trybie FAST PWM.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2015, o 15:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Dziękuje za wyczerpujące wyjaśnienie.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2015, o 16:28 
Offline
Użytkownik
Avatar użytkownika

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

Witam
tomson5 napisał(a):
Rozumiem że timer w trybie Pwm a za pomocą tego taktu mam sobie liczyć czas?

Timer w trybie CTC - p.BB str.233 na temat PWM programowego.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

zależność od takt/cnt możesz oczywiście dowolnie zmieniać, tutaj zwiększanie było co drugi takt ale można nawet co cały obieg 0-255.
Można też uniezależnić od cnt ; np.:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i "niech se liczy do 16'tu bitów aż sie przekręci" :)

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2015, o 07:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Może sobie liczyć te 16 bitów, ale zwróć uwagę, że bardzo spadnie Ci częstotliwość programowego pwm

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2015, o 09:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Sterowanie będzie listwą led. Wystarczy aby nie było widać mrugania.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2015, o 16:06 
Offline
Użytkownik
Avatar użytkownika

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

Witam
SylwekK napisał(a):
Może sobie liczyć te 16 bitów, ale ... spadnie Ci częstotliwość programowego pwm

Może nie wyraźnie napisałem ale sugerując:
kicajek napisał(a):
Można też uniezależnić od cnt ; np.:

miałem na myśli pozostawienie liczenia cnt dla PWM'a, a czas liczyć takt'em.
Po prostu obydwie zmienne są niezależne i tak "pwm" do przewinięcia a "takt" zerować np.: po 50.000 i wystawiać flagę "że już minęło tyle czasu"
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2015, o 17:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

A no właśnie tak zrozumiałem, że o pwm'a chodzi, ale rozwiałeś moje wątpliwości :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2015, o 20:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Wykorzystałem sposób kolegi @jacekk232. Wcześniej próbowałem sposobu kolegi @kicajek ale coś mi nie poszło. Co nie znaczy że sposób jest zły. Prawdopodobnie mam problemy z konfiguracją timera w trybie CTC.

Mam małą niedogodność. Przy wartości pwm= 0 dioda lekko się świeci. Z czego to może być ??

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2015, o 20:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Bo tak działa tryb Fast Pwm. Tutaj masz wyjaśnienie topic1600.html#p16043



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2015, o 07:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Dziękuje już poprawiłem. Pierwszy raz mi się tak ustawiło pwm. Zazwyczaj korzystałem z ctrl+C ctrl+V a teraz według noty ustawiałem.

_________________
"Nie programuj w święta - bug się rodzi"



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: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO