PWM-Lauflicht

Gast #371145
Lesenswert?

Anbei mal ein Lauflicht mit PWM aufm AT89C2051
1
if( --pwm[0] == 0 )
2
  PWM0 = 0;

wird aufm 8051 compiliert in die DJNZ-Instruktion, welche nichtmal
Flags verändert.
Dadurch ist der Software-PWM Interrupt sehr schnell.

Aufm AVR ist das dann umständlicher, aber das sollte er durch mehr MIPS
wieder kompensieren können (notfalls Interrupt in Assembler).


Schwerer wirds aber, wenn daneben noch andere Sachen gemacht werden
sollen.
Aufm 8051 gibt man einfach dem PWM-Interrupt die hohe Priorität und gut
is. Dann können andere Interrupts ruhig langsamer sein, ohne die PWM zu
stören.
Aufm AVR wirds dagegen haarig (Priorität in Software nachbilden).


Peter
Angehängte Dateien:
Gast #1314217
Lesenswert?

Hallo Peter,

möcht dich nur zur Kontrolle fragen wie der genau Ablauf von deinem 
Lauflicht gedacht ist? Weil ich sichergehen möchte das ich keine Fehler 
gemacht hab...

8LEDS sind eingeschalten und es soll den Anschein haben als würde eine 
einzelne gedimmte LED von Bit0 nach Bit7 laufen, ist das korrekt?
Gast #1317133
Lesenswert?

k hat sich erledigt...bin jetzt erst draufgekommen das die leds bei dir 
wahrscheinlich gegen Vcc geschaltet sind...da das bei mir nicht der fall 
ist hab ich das ganze invertiert gesehen...nach der korrektur schauts 
schon wieder anders aus...aber wirklich schön gemacht...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren