[AVR] Programowy generator PWM

Borykam się ostatnio z problemem stworzenia programowego generatora PWM w mikrokontrolerze ATiny26. Tak, wiem że posiada on 2 sprzętowe PWMy, ale są już wykorzystane a potrzebuję dołożyć jeszcze jeden (a po ujarzemieniu tego jednego, kolejne 3 :)). Szukałem już po googlach i w archiwum, ale coś ciężko mi znaleźć jakieś sprawdzone algorytmy, o przykładowych kodach (najlepiej w asemblerze) już nie wspominając. Generalna zasadę działania takiego generatora znam, ale ciężko mi to przełożyć na konkretny działający kod :/ Generalnie potrzebuję generatora, a w którym mógłbym sobie dowolnie sterować wypełnieniem, i którego częstotliwość była by rzędu min. 100Hz (sterować ma to diodami LED więc chciałbym uniknąć delikatnego migotania). Jeżeli ktoś będzie w stanie mi pomóc to będę niezwykle wdzięczny...

Reply to
Mateusz Majchrzycki
Loading thread data ...

Mateusz Majchrzycki napisal(a):

W tym procesorze nie ma timera?

Reply to
Marcin E. Hamerla

Pewnego dnia Marcin E. Hamerla snipped-for-privacy@Xpoczta.Xonet.Xpl.removeX> nastukał(a):

Jest, jest... Ale jak już pisałem potrzebuję jakiegoś solidnego przykładu na ktorym mogę się oprzeć. W wymyślaniu algorytmów nigdy nie byłem dobry wobec czego trudno samemu mi taki generator stworzyć. Proszę tylko o podanie jakiegoś solidnego źródła gdzie znajdę przykładowy kod źródłowy, ew. jakiś porządny opis/algorytm na zrealizowanie programowego PWMa.

Reply to
Mateusz Majchrzycki

Mateusz Majchrzycki napisał(a):

Jeśli wystarczy tylko 8 stopni wypełnienia, to wpisujesz do jakiegoś rejestru liczbę określającą wypełnienie (0, 1, 3, 7, 0Fh, 1Fh, 3Fh, 7Fh,

0FFh), w przerwaniu od timera rotujesz o jeden bit ten rejestr i np. najstarszy bit wystawiasz na pin.

Pozdrawiam JS

Reply to
JS

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.