Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj się3 * pwm w atmega8
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Witam wszystkich mam pytanie odniśnie z pwm w atmega8 nie wiem w jaki sposOb urzyć wszystkich trzech pwm w attiny2313 to jest proste bo jest jedno pwm , a tu potrzeba mi trzech byłbym wdzięczny za pomoc za podanie jakiegoś przykładu w bascomie jak to zrobić albo podanie linku gdzie morzna poczytać na ten temat.
e np :
Chyba bedzie dzialc ... pisane z glowy
Kod: Zaznacz cały
$regfile = "m8def.dat"
$crystal = 8000000
Dim I As Byte
Dim Czas As Byte
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 ' dwa kanaly pwm na pb1 i pb2
Config Timer2 = Pwm , Prescale = 1 , Pwm = On , Compare Pwm = Clear Up ' trzeci kanal na pb3
Czas = 1
Do
For I = 0 To 255
Pwm1a = I
Pwm1b = I
Ocr2 = I
Waitms Czas
Next I
incr Czas
loop
Pisząc programowy PWM. Działa na tyle świetnie że nie korzystam ze sprzętowego, a do tego ma tą przewagę nad sprzętowym że przedział ustawiania jest od 0 do 100%, a w zasadzie odwrotnie od 100% - najmniej PWM do 0% - najwięcej PWM.A w jaki to sposób morzna tyle mieć wyjść pwm jle wyprowadzeń procesora?
- Tomasz Gumny
- -
- Posty:685
- Rejestracja:4 lut 2004, o 23:31
- Lokalizacja:Trzcianka/Poznań
Programowy PWM zawsze będzie osiągał niższą częstotliwość przebiegu a zatem w przypadku pracy jako przetwornik C/A będzie wymagał dłuższego całkowania i będzie wolniejszy. Do tego dochodzą zupełnie nieprzewidywalne skoki czasu trwania stanu niskiego (i wysokiego), gdy procesor wykorzystuje również inne przerwania. Nawet jeśli nie będzie nic innego robił, to trudno jest uzyskać na dwóch (i więcej) programowych wyjściach PWM przebiegi o zbliżonym wypełnieniu.
Przy odrobinie staranności sprzętowy PWM również osiąga 0 i 100% wypełnienia.
Przy odrobinie staranności sprzętowy PWM również osiąga 0 i 100% wypełnienia.
Może się i będzie nadawał programowy.. ale do bardzo prostych zastosowań... czytaj jak napisano wcześniej do małych częstotliwości i małych rozdzielczości. Imo programowego używa się jak nie mamy dostępnego timera z wyjściami pwm, mamy ich za mało albo żywcem nam się nie chce porutować płytka od nóżki z PWMem.
Pozdrawiam
Czajnik
Pozdrawiam
Czajnik
Poważny projekt wcale nie musi się równać skomplikowanym (czytaj bardziej wymagającym) zastosowaniom PWMa. Wymieniona przez Ciebie ilość PWMów niejako zmusza do innego rozwiązania niż korzystanie ze sprzętowego udogodnienia ale wątpię aby koledze np był potrzebny PWM 8 bitowy z częstotliwością wystarczającą np do zagrania jakiejś melodyjki.
Z szybkich przeliczeń
asm:
wejście w przerwanie - 4 cykle
inkrementacja licznika - 1
porównanie bajtu - 2
zmiana stanu portu sądzę ze skokami ze 6 cykli
wyjście z przerwania 4 cykle
Czyli na szybkiego masz 17 razy wolniejszy PWM niż sprzętowy. Jeśli doliczysz jakiekolwiek odkładanie rejestrów na stos podczas wykonywania programu do tego pobranie z pamięci wartości OCR i licznika to robi się z tego 30-40 cykli na każdy krok PWMa.
Żeby nie było sam czasem używam programowego PWMa choćby do sterowania jasnością 8 segmentów pojedynczego wyświetlacza 8segmentów ale to co daje się osiągnąć wystarcza co najwyżej do tandetnego oszukania ludzkiego oka... bo jak już poruszać wyświetlaczem to widać klatkowanie. Konkretnie przy 8 MHz i niezbyt skomplikowanym programie towarzyszącym osiągnąłem 62 Hz i 20 kroków PWMa - Program napisany w Bascomie.Nikt nie mowi że programowe PMWy są złe... ale sam widzisz że nie jest to bogata opcja i chyba wszystkim najbardziej chodzi o to że programowo można robić wiele PWMów... ale na pewno ani nie szybkich ani nie o wysokiej rozdzielczości.
Pozdrawiam
Czajnik
Z szybkich przeliczeń
asm:
wejście w przerwanie - 4 cykle
inkrementacja licznika - 1
porównanie bajtu - 2
zmiana stanu portu sądzę ze skokami ze 6 cykli
wyjście z przerwania 4 cykle
Czyli na szybkiego masz 17 razy wolniejszy PWM niż sprzętowy. Jeśli doliczysz jakiekolwiek odkładanie rejestrów na stos podczas wykonywania programu do tego pobranie z pamięci wartości OCR i licznika to robi się z tego 30-40 cykli na każdy krok PWMa.
Żeby nie było sam czasem używam programowego PWMa choćby do sterowania jasnością 8 segmentów pojedynczego wyświetlacza 8segmentów ale to co daje się osiągnąć wystarcza co najwyżej do tandetnego oszukania ludzkiego oka... bo jak już poruszać wyświetlaczem to widać klatkowanie. Konkretnie przy 8 MHz i niezbyt skomplikowanym programie towarzyszącym osiągnąłem 62 Hz i 20 kroków PWMa - Program napisany w Bascomie.Nikt nie mowi że programowe PMWy są złe... ale sam widzisz że nie jest to bogata opcja i chyba wszystkim najbardziej chodzi o to że programowo można robić wiele PWMów... ale na pewno ani nie szybkich ani nie o wysokiej rozdzielczości.
Pozdrawiam
Czajnik
Mnie osobiście potrzeba trzech pwm i to najlepiej sprzętowych 1pwm ma podawać poprzez filtr rc napięcie wzorcowe na stabilizator lm723 2pwm podaje napięcie poprzez filtr rc na komparator sterujący prądem a 3pwm steruje wentylatorem całe urządzenie będzie czymś w rodzaju zasilacza cyfrowego z regulacją napięcia i prądu wyjściowego.
- Tomasz Gumny
- -
- Posty:685
- Rejestracja:4 lut 2004, o 23:31
- Lokalizacja:Trzcianka/Poznań
- Tomasz Gumny
- -
- Posty:685
- Rejestracja:4 lut 2004, o 23:31
- Lokalizacja:Trzcianka/Poznań
- Tomasz Gumny
- -
- Posty:685
- Rejestracja:4 lut 2004, o 23:31
- Lokalizacja:Trzcianka/Poznań
Witam
Tomku co oznacza "Ustawiając TOP na 9999", gdzie tą wartość wpisać, jak ją przeliczać. Przejrzałem, wydaje mi się dość dokładnie, zawartość z książki M. Wiązania Prog. mikrokon. w języku Bascom i nic o TOP nie znalazłem. Mam nadzieję że dobrze zrozumiałem dział o taimerach, przeliczanie itp. no a z tym TOPem nie mogę się pozbierać.
Proszę o wyjaśnienie
Paweł
Tomku co oznacza "Ustawiając TOP na 9999", gdzie tą wartość wpisać, jak ją przeliczać. Przejrzałem, wydaje mi się dość dokładnie, zawartość z książki M. Wiązania Prog. mikrokon. w języku Bascom i nic o TOP nie znalazłem. Mam nadzieję że dobrze zrozumiałem dział o taimerach, przeliczanie itp. no a z tym TOPem nie mogę się pozbierać.
Proszę o wyjaśnienie
Paweł
- Tomasz Gumny
- -
- Posty:685
- Rejestracja:4 lut 2004, o 23:31
- Lokalizacja:Trzcianka/Poznań
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości