Hallo,
ich habe jetzt endlich geschafft, den PWM im PIC16F627A anzusteuern und
zu nutzen. Aber: Er hat nur einen PWM-Ausgang (RB3), ich bräuchte aber
zwei, da ich Ziffern ineinander überblenden möchte.
Wie ist das möglich?
Gruß
Jens
Hm... mit Software PWM hab ich keine so guten Erfahrungen gemacht, ich
werde es ausprobieren.
Also geht es gar nicht mit nur einem Port? Ich dachte erst: Für die
kleine Zeitspanne (ein PWM-Zyklus) den einen Duty-Cycle-Wert verwenden,
den nächsten den zweiten, immer im Wechsel. Wenn der PWM-Zyklus kurz
genug ist sollte das doch gehen, oder?
>Also geht es gar nicht mit nur einem Port? Ich dachte erst: Für die>kleine Zeitspanne (ein PWM-Zyklus) den einen Duty-Cycle-Wert verwenden,>den nächsten den zweiten, immer im Wechsel. Wenn der PWM-Zyklus kurz>genug ist sollte das doch gehen, oder?
? ich weiß echt nicht wie du deinen PWM ausgang aufteilen willst ... das
ist ein einzelner draht ... mit einer kleinen logikschaltung (z.b. UND
mit einem weiteren ausgang) könnte man die pwm wechselweise zu dem einen
oder andern verbraucher schalten (was für die verbraucher dann aber auch
bedeutet nur 50% abzubekommen über die zeit gesehen)
und eine software-PWM ist immer so gut wie sie programmiert wurde.
2 Timer oder 1 Timer mit 2 Comparewerten(PWM low) dann overflow(PWM
high) und Interupts ... ich wüsste nicht, was an dieser PWM auszusetzen
wäre ...
wenn die frequenz der pwm nicht zu hoch ist, bleibt dem prozessor auch
noch genügend rechenzeit für seine andern aufgaben.
sam schrieb:
>eine PWM zu Multiplexen macht eigentlich keinen sinn
Tschuldigung, wenn ich mich in diesen Thread mit reinhänge, aber ich
habe ein ganz ähnliches Problem: Ich habe drei LED-Reihen an einem Port,
die ich per Multiplexing ansteuere. Wenn ich jetzt noch die Helligkeit
per PWM regeln will, dann müsste ich doch PWM und Multiplexing irgendwie
kombinieren? Da ich ja nicht einen Hardware-PWM-Kanal auf drei
Anschlüsse teilen kann, muss ich wohl Software-PWM verwenden. Wenn ich
mit 100Hz 1:3 multiplexe und 256 Helligkeitsstufen brauche, bin ich bei
(1000/100/3/256) 13yS Zykluszeit, was einer Interruptfrequenz von ca. 77
khz entspricht. Das erscheint mir sehr viel, habe ich da irgendwo einen
Denkfehler gemacht und das ganze geht noch einfacher?
Software-PWM kann theoretisch sogar 16Bit-Auflösung!
Ich habe mal einen AVR programmiert und ein 16x16 RGB-Selbstbaudisplay
mit 16M Farbtiefe gebaut (3x255 Stufen).
Das habe ich quasi in einer For 0 to 255-Schleife gemacht. Sobald ein
Farbwert erreich wurde, wurde der Pin abgeschaltet. Somit konnte man
quasi alle Ports des AVR als PWM-Out nutzen.
Beim PIC wird das nicht anderst sein!
PICler schrieb:
> Hallo,>> ich habe jetzt endlich geschafft, den PWM im PIC16F627A anzusteuern und> zu nutzen. Aber: Er hat nur einen PWM-Ausgang (RB3), ich bräuchte aber> zwei, da ich Ziffern ineinander überblenden möchte.
Kannst du nicht das PWM Signal extern mit Hühnerfutter invertieren?
Wenn du sowieso nur eine Überblendung machen willst, müsste das doch
gehen.
@ Peter (Gast)
>mit 100Hz 1:3 multiplexe und 256 Helligkeitsstufen brauche, bin ich bei>(1000/100/3/256) 13yS Zykluszeit, was einer Interruptfrequenz von ca. 77>khz entspricht. Das erscheint mir sehr viel,
Ist es auch. Zu viel für praktische Anwendung.
@ Alex W. (a20q90)
>Software-PWM kann theoretisch sogar 16Bit-Auflösung!
Kaum. Siehe Soft-PWM>Ich habe mal einen AVR programmiert und ein 16x16 RGB-Selbstbaudisplay>mit 16M Farbtiefe gebaut (3x255 Stufen).
Im Traum.
>Das habe ich quasi in einer For 0 to 255-Schleife gemacht. Sobald ein>Farbwert erreich wurde, wurde der Pin abgeschaltet.
WOW! Und das bei 1 Hz PWM Frequenz, was?
MFG
Falk
Falk Brunner schrieb:
>Ist es auch. Zu viel für praktische Anwendung.
Erst mal danke, dass mir überhaupt jemand geantwortet hat.
Allerdings bringt mich das einer Lösung noch nicht näher...
PICler schrieb:
> zu nutzen. Aber: Er hat nur einen PWM-Ausgang (RB3), ich bräuchte aber> zwei, da ich Ziffern ineinander überblenden möchte.
Was willst Du dann mit nem PWM-Ausgang ???
Du mußt beide Ziffern im Wechsel unterschiedlich lange ausgeben, z.B.
von '6' auf '7' erst die '6' zu 100%, die '7' zu 0%, und dann langsam
ändern, bis 0% '6' und 100% '7'.
Eine HW-PWM ist dabei völlig nutzlos.
Peter