Du denkst zu kompliziert.
Setz den Wert auf 0 dann isse aus.
Moin Moin,Code:'################################# '# Software Pulsweitenmodulation # '################################# $regfile = "M16def.dat" $crystal = 1000000 Ddrd = &B00000001 'PD7, PD6,PD5 als Ausgänge festlegen, rest Eingang Do Enable Interrupts 'Interrupts Global einschalten Enable Timer0 Config Timer0 = Timer , Prescale = 64 On Timer0 Ontimer0 Enable Timer1 Config Timer1 = Timer , Prescale = 1 On Timer1 Ontimer1 Dim Reverse As Bit Dim Helligkeit As Byte Helligkeit = 255 '###Deklarationen### Led_ro Alias Portd.0 'LED Rot Do Loop Ontimer0: Toggle Led_ro If Led_ro = 1 Then Timer0 = 255 - Helligkeit Else Timer0 = Helligkeit End If Return Ontimer1: If Helligkeit = 255 Then Set Reverse End If If Helligkeit = 1 Then Reset Reverse End If If Reverse = 0 Then Incr Helligkeit End If If Reverse = 1 Then Helligkeit = Helligkeit - 1 End If Return Loop
so ich habe diesen Code hier im Forum gefunden und habe ihn so geändert, das auf Portd.0 eine LED immer ein und ausfaded. Sieht sehr schön aus, nur ich möchte eine PWM , circa 50 % sprich Helligkeit = 255-120 oder so ein und auschalten können mit einem Taster. Wenn ich den befehl
dann dreht die PWM völlig durch.. Wie schalte ich eine PWM ein und aus..Code:If porta.1 = 0 then .. .. End if
Schöne Grüße
Du denkst zu kompliziert.
Setz den Wert auf 0 dann isse aus.
Gruß
Ratber
Das Problem habe ich öfter mal, da hast du recht *gg* Ja das ist wohl war, aber es soll ein Ausgang werden, der wenn Eingang A.0 = 0 ist 2x blinken soll bzw wenn Eingang A.1 = 0 dann soll er auf halbe leuchtstärke leuchten. Dann muss ich ja irgendwie die Software PWM abschalten.. Geht das überhaupt ??
Warum soll das denn nicht gehen ?
Das Software-PWM nutzt den Timer und den dazugehöhrigen Interupt.
Schalt den Timer ab (Stop Timerx) dann gibts auch keinen Int und folglich keinen Sprung in die Routinen.
Jetzt kannste mit dem Port machen was dir beliebt.
Danach schalteste den Timer wieder ein (Start Timerx) und weiter gehts mit soft-PWM.
wie gesagt finde ich da jetzt keinen Denkfehler.
Kann ich aber morgen mal schnell probieren.
Wie gesagt würde es auch reichen wenn du die Variable für die LED (Helligkeit) einfach auf 0 für aus und 255 für an nimmst dann brauchste an der Soft-PWM nix zu drehen.
Oder hab ich dein Problem immernoch nicht verstanden ?
Gruß
Ratber
HeyWodka,
hab grad nach einer Schltung gesucht um die Helligkeit von LEDs zu steuern.
Danke.
Hab aber 2 Fragen:
1. Wie kann ich die intervall länge verändern? (ein/ausfädern)
2. Ich möchte ca 30 LEDs steuern, wie verstärke ich am besten das signal?
bzw wieviel LED kann ich an einen Ausgang hängen.
Mfg
lenox![]()
Hallo Lenox,
das ist schon länger her, dass ich mich damit beschäftigt habe, aber zu deinen Fragen:
1.
Der Intervall kann mit dem Prescaler (Teiler) verstellt werden. Oder du änderst deinen internen bzw exteren Takt des MC.
2.
Bei 30 Leds würde der MC den Ausgangsstrom garnicht erbringen. Nimm einen kleinen Transistor zur Stromverstärkung..
mfg
problem ist ich möchte jede LED einzeln steuernwahrscheinlich doch "nur" 15
siehe
https://www.roboternetz.de/phpBB2/vi...=234994#234994
Lesezeichen