Hallo zusammen,
ich bräuchte mal Hilfe zum Thema PWM bei einem Attiny13A
Ich schnall das einfach nicht... (salopp gesagt)
Der Attiny13A hat ja 2 PWM Ausgänge 8bit,
was auch reichen sollte 2 LED´s unterschiedlich zu dimmen.
Wie ich eine LED mit PWM betreibe bekomme ich hin, aber offenbar läuft
dies im Fast PWM Mode, welches mir ja dann den 2. Kanal blockiert. Hier
mal der CODE.. (ja ich weißt Ordnung fehlt.
https://pastebin.com/8Ewibbbu
Zur Aufgabenstellung:
Ich möchte 2 LEDs unterschiedlich faden lassen, selbe frequenz, nur das
wenn die eine an fadet, soll gleichzeitig die 2. LED ausfaden.
Der Code ist einfach nur zusammengewürfelt und kopiert und in
keinsterweise sortiert, optimiert oder sonst was... das ist erst mal
mein Testgeschnipsel.
Vielen Dank schon mal
Grüße
Tobias
Hallo,
Okay wenn ich den aktiviere, wie steuer ich den dann im pwm_write an?
OCR0B ist doch PB1
Geht es dann mit OCR0A?
Wenn PB1 den Wert 255 hat soll PB0 den Wert 0 haben.
Tobias schrieb:> Hallo,> Okay wenn ich den aktiviere, wie steuer ich den dann im pwm_write an?> OCR0B ist doch PB1> Geht es dann mit OCR0A?
PB0 zeigt die "A"-PWM, so denn auch aktiviert.
> Wenn PB1 den Wert 255 hat soll PB0 den Wert 0 haben.
Das klingt eher nach komplementärer Ausgang, was der Tiny13 nicht direkt
kann.
2 LEDs zu dimmen ist aber was anderes. Wenn es also nur darum geht, Die
Helligkeit der LEDs komplementär zu sehen, dann ist die exakte
Phasenlage egal, d.h. CCR0A = ~OCR0B.
Tobias schrieb:> Ich schnall das einfach nicht... (salopp gesagt)>> Der Attiny13A hat ja 2 PWM Ausgänge 8bit,> was auch reichen sollte 2 LED´s unterschiedlich zu dimmen.
Das stimmt doch. Was genau schnallst du daran also nicht?
> Wie ich eine LED mit PWM betreibe bekomme ich hin, aber offenbar läuft> dies im Fast PWM Mode, welches mir ja dann den 2. Kanal blockiert.
Nein, das tut der Fast PWM Mode natürlich NICHT.
Dein Problem ist also offensichtlich: zu doof/faul das Datenblatt zu
lesen.
> Der Code ist einfach nur zusammengewürfelt und kopiert
Genau das ist das Problem. Selbst DB lesen, selbst denken, selbst Code
schreiben funktioniert einfach besser...
No mercy.
Hallo Tobias,
falls du nicht nur beim AVR, sondern auch hier im Forum Anfänger bist:
Nicht jeden Post lesen, denn manche sind nur dazu geschrieben, deine
Neugier zu zerstören. Mit der Zeit erkennt man siche Posts schon am
zweiten Wort unter der Überschrift. "Autor: ..."
Tobias schrieb:> OCR0B ist doch PB1
Nein, OC0B ist PB1.
OCR0A ist für OC0A(PB0) zuständig.
OCR0B ist für OC0B(PB1) zuständig.
(OCR = Output Compare Register)
Tobias schrieb:> Ich möchte 2 LEDs unterschiedlich faden lassen, selbe frequenz, nur das> wenn die eine an fadet, soll gleichzeitig die 2. LED ausfaden.
Das geht auch mit einer PWM: Eine Led gegen GND, eine an Vcc und die
beiden anderen Enden der Leds an den PWM-Ausgang.
Carl D. schrieb:> Das klingt eher nach komplementärer Ausgang, was der Tiny13 nicht direkt> kann.> 2 LEDs zu dimmen ist aber was anderes. Wenn es also nur darum geht, Die> Helligkeit der LEDs komplementär zu sehen, dann ist die exakte> Phasenlage egal, d.h. CCR0A = ~OCR0B.
Vielen Dank, das hat mir auf jedenfall geholfen
Carl D. schrieb:> Hallo Tobias,> falls du nicht nur beim AVR, sondern auch hier im Forum Anfänger bist:> Nicht jeden Post lesen, denn manche sind nur dazu geschrieben, deine> Neugier zu zerstören. Mit der Zeit erkennt man siche Posts schon am> zweiten Wort unter der Überschrift. "Autor: ..."
Ich gebe um solche Pfosten nichts.... Ich mache das hier immer mal
wieder nur nebenbei für mich oder für bekannte.. da mein Beruf
(Zerspanungsmechaniker) und meine Familie mich sehr in Beschlag nehmen,
bleibt für sowas hier leider nicht viel Zeit
Georg M. schrieb:> Nein, OC0B ist PB1.>> OCR0A ist für OC0A(PB0) zuständig.> OCR0B ist für OC0B(PB1) zuständig.>> (OCR = Output Compare Register)
Danke dir, auch das hat mir geholfen.
Ich habs jetzt hinbekommen mit den hier genannten Hinweisen und bissle
testen.
Danke nochmal an alle