hi, attiny mit 3 16bit PWM kanäle mit 8bit timer hat sowas schon mal jemand Programmiert und wär bereit den Code zu posten. hab mir das so vorgestellt: pwm-werte größe nach sortiert. im 8bit-timer-überlauf: 8bit-variable inc (highbyte der 16bit PWM). wenn highbyte der pwm und des pwmwertes des ersten listenelementes gleich, den output-compare aktivieren. im output compare entsprechenden pin toggeln und auf den nächstgrößeren wert schauen, ob ebenfalls in diesem 8bit-zyklus dran, falls ja neuen outputcompare setzen sonst nixmachen beim überlauf der pwm-highbyte-variable, rücksetzen der pins prinzipiell sollte es ja so gehen, aber der Teufel liegt ja bekanntlich im Detail, gleiche pwm-werte, zu geringe differenzen zw. zw pwm-werten, so dass die isr noch nicht fertig ist, ... Und wenn jemand ds schon mal gemacht hat, wärs blöd, wenn ich mich hier stundenlang quäle. warum ich sowas machen will? es gibt keine 8-pin-tinys mit 16bit timer ;-( hab in einer liste zwar welche gefunden attiny4 attiny5 und attiny9. nur sind die nicht sehr verbreitet und haben auch kaum speicher. MfG, Vlad
Dann halt PIC12Fxxx ! 16 Bit Timer mit Compare, dann geht Soft-PWM mit Sortierung. Und hat auch nur 8 Pin;) Hans
das würde aber eine völlig andere Toolchain und einarbeitung, sowie ein anderes Programmiergerät erfordern. Das wollt ich vermeiden. Ich war bloß ehrlich ziemlich verwundert, als ich festgestellt hab, dass es keinen kleinen tiny mit nem 16 timer gibt.
Im Tutorial gibt es einen Software PWM: http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM Einfach aufbohren!
Auch als "avr" ist der Picvorschlag gut. Aber jetzt zur Frage : Wozu 3 x 16 Bit PWM bei max. 6 I/O Welche Frequenz wird benötigt. Vermutung : Tiny als RGB-Ansteuerung mit SPI avr
ZackZack schrieb: > Im Tutorial gibt es einen Software PWM: > http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM > > Einfach aufbohren! die dort vorgestellte softwarePWm ist recht ungeeignet. da die ja nur im Timeroverflow arbeitet, hat die ja quasi schon einen vorteiler von 256. wenn man dann noch bis 2^16 zählt hat man bei 8Mhz einen halben PWM-Zyklus pro sekunde. avr schrieb: > Auch als "avr" ist der Picvorschlag gut. > > Aber jetzt zur Frage : Wozu 3 x 16 Bit PWM bei max. 6 I/O > > Welche Frequenz wird benötigt. > > Vermutung : Tiny als RGB-Ansteuerung mit SPI RGB-Ansteuerung ja, spi nein. is für ne kleine Lampe mit verschiedenen Programmen und nem schalter zur bedienung. (einzelfarben, helldunkel-fading jeder einzelfarbe, farbwechsel, helldunkel-gefadedeter Farbwechsel + variabler sleep-timer) mein erster entwurf ist nen tiny13. da is allerdings nur ne 8bit soft pwm einfachster art (in etwa wie in dem Artikel oben und ohne Berücksichtigung einer logarithmischen Kennline. wollte jetzt aber ein zweites Modell bauen und dies korrigieren. Da es auch eine Miniversion geben sollte, halt so ein kleiner Controller. für die zweite Version wollte ich nen tiny25 nehmen, da der tiny13 bis auf ein paar bytes komplett voll ist.
Hi >Ich war bloß ehrlich ziemlich verwundert, als ich festgestellt hab, >dass es keinen kleinen tiny mit nem 16 timer gibt. Die Kleinsten haben einen -> ATTiny4/5/9/10 MfG Spess
Vlad Tepesch schrieb: > hab in einer liste zwar welche gefunden attiny4 attiny5 und attiny9. nur > sind die nicht sehr verbreitet und haben auch kaum speicher.
Hi Dann nimm halt einen ATTiny24/44. Sind in SMD auch nicht viel grösser als ein 8-Pin-Dip. MfG Spess
Mehr als 2 Kanaele pro Timer (also zwei fuer den 16-Bit und 2 fuer den 8-Bit) wirst Du allerdings auch nicht haben. Fuer eine LED-Ansteuerung brauchst Du allerdings auch keine 16-Bit-PWM (das ist overkill). Ich hab eine Ansteuerung mit einem Tiny2313 realisiert mit 4 Kanaelen (blau gibt es bei der LED zwei mal). Den Code stell ich Dir zur Verfuegung wenn Du magst. Greets, Michael
@spess: mit smds löten steh ich auf Kriegsfuss. Michael G. schrieb: > Mehr als 2 Kanaele pro Timer (also zwei fuer den 16-Bit und 2 fuer den > 8-Bit) wirst Du allerdings auch nicht haben. Ich brauch auch nur einen hardwaretimer > Fuer eine LED-Ansteuerung > brauchst Du allerdings auch keine 16-Bit-PWM (das ist overkill). die 16btit brauch ich, damit die Helligkeitsänderungen und damit die farbübergänge linear wirken. Da die Farbübergänge extrem langsam sein sollen >2 min für einen HUE-Durchlauf reichen auch keine 10 bit, es sollen schon 256 abstufungen sein. > Ich hab > eine Ansteuerung mit einem Tiny2313 realisiert mit 4 Kanaelen (blau gibt > es bei der LED zwei mal). Den Code stell ich Dir zur Verfuegung wenn Du > magst. Bracuh ich nicht, trotzdem danke. > > Greets, > Michael Ich seh schon, scheint noch niemand gemacht zu haben. werd mich mal dran versuchen. Wenn mit das Ergebnis gefällt und der Code aufgeräumt wurde werd ich ihn hier eventuell posten.
Hm ich glaub ich verstehe Dein Problem nicht, mehr als 256 Abstufungen pro Kanal wird Dir selbst die beste LED nicht bringen (eher weniger), geschweige denn wirst Du bei hoeheren Aufloesungen dort etwas sehen. Das heisst Du verzoegerst jede Abstufung enstprechend lange und dann kannst die ganze Schese problemlos so weit hinaus zoegern wie Du es haben willst. Ueberleg mal: bei 8 Bit pro Kanal reden wir hier von 24-Bit-Farben, d.h. die beruehmten 16.7 Millionen Farben. Wieviele Farben moechtest Du denn mit Deiner LED aufloesen? Das ist doch Unfug(tm) ;)
Nu gut... Aber Du hast trotzdem keine 3 Kanaele zu 16 Bit :P
Hi >@spess: >mit smds löten steh ich auf Kriegsfuss. Falls du dein Hobby noch längere Zeit beibehalten willst, solltest du schon mal anfangen zu üben. MfG Spess
Für LEDs muß es kein echtes 16 Bit PWM sein. Vemutlich sind 16 Bit auch nicht nötig, aber das ist eine andere Diskussion. Mann könnte den LEDs ein 8 Bit PWM Signal geben und dieses 8 Bits PWM Signal noch einmal Softwaremäßig umschalten ähnlich wie Software PWM. Dadurch hat man im Wesenlichen die volle Frequenz des Hardware PWM, und trotzdem 16 Bit (oder mehr) Auflösung. Man hat nur die volle Auflösung nicht nach einem Puls, sondern erst im Mittel nach 256 Pulsen, die dafür aber schneller kommen. Hardwaremäßig sollte man dafür PWM Kanäle haben, die den PWM Wert puffern, so dass man nicht genau abpassen muß, wann man ins Register schreiben darf. Die LEDs können durchaus 256 Abstufungen in der Helligkeit Widergeben. Bei linearer Teilung sind die unteren Stufen auch schon mal störend grob.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.