am einfachsten du setzt einen Elko zwischen Masse und der Spannung. Der läd sich wärend der einschaltfase auf, und wenn sie aus geht, gibt er noch etwas spannung ab, so dass ein nachleuten entsteht. So hatte ich das mal bei einem Blinklich gemacht
Hallo,
ich möchte mich gerne auch in die AVR Welt einarbeiten. Ich habe mir ein kleines Lauftlicht programmiert und es funktioniert soweit auch ganz gut.
Nur ich möchte noch ein Nachfadeeffekt! Was wäre denn die beste Möglichkeit dafür. Software - PWM mit einbauen !??? Nur leider bin ich noch nicht ganz so fit in PWM. Versteh nicht ganz den Unterschied wie ich in Bascom eine Software-PWM programmiere oder eine Hardware PWM. (Der Unterschied) Vielleicht könnt ihr mir ja bei meinem Problem auf die Sprünge helfen.
Hier mein Code:
Code:$regfile = "m16def.dat" $crystal = 1000000 Config Porta = Output Porta = &B11111111 Dim A As Byte Do For A = 0 To 7 Porta.a = 0 Waitms 50 Porta.a = 1 Next A Do A = A - 1 Porta.a = 0 Waitms 50 Porta.a = 1 Loop Until A = 0 Loop
am einfachsten du setzt einen Elko zwischen Masse und der Spannung. Der läd sich wärend der einschaltfase auf, und wenn sie aus geht, gibt er noch etwas spannung ab, so dass ein nachleuten entsteht. So hatte ich das mal bei einem Blinklich gemacht
..oder du arbeitest mit einer PWM.
Brauch ich für eine Software-PWM eigentlich Timer0 u. Timer1, wenn ich nur eine LED einmal ganz aus, 50 % an und ganz an haben will ( mit taster) ??
Gibt es irgendwo für Software PWM eine Hilfe für Bascom...Ich kann es leider noch nicht unterscheiden wann es eine Software PWM od eine Hardware PWM ist ( von der Programmierung her)
Vielleicht bringt ihr mich ja auch auf die Sprünge
Schönen Gruß
software-pwm wäre wenn du nen timer baust mit 5khz frequenz zB und dann in der timer-routine je nach bedingung
ausführst - das hat den vorteil, dass du jeden port mit pwm versehen kannst, musst dir dann halt nen zähler einbauen, dass du impuls-pausenverhältniss andern kannst.Code:toggle portpin
Das war Bahnhof für mich Bin doch Newbie in Sachen µC.
Was macht genau Toggle, habe das aus der Bascom Hilfe nicht verstanden.
Könntest du mir nicht mal eben einen kleinen Code posten, womit eine Led circa 50 % Leuchtstärke hat..
das ganze ist nur theoretisch zusammengepappt - wenn du mehr leds hast must du dir hilfsbits machenCode:$regfile = "m16def.dat" 'Quarzfrequenz $crystal = 16000000 'Hier wird der Timer und der Teiler festgelegt Config Timer0 = Timer, Prescale = 64 On Timer0 Timer_irq Const Timervorgabe = 206 config pinc.1 =output Config Pinc.2 = Output Led1 Alias Portc.1 led2 alias portc.2 disable Timer0 Enable Interrupts Do led1=1 'led 1 an waitms 500 led2=1 enable timer0 'jetzt wird led1 50%leuchten waitms 200 disable timer0 led1=0 waitms 300 'usw Loop end 'Dies ist der Programmteil, der in dem von ihnen gewählten 'Intervall aufgerufen wird Timer_irq: Timer0 = Timervorgabe Toggle Led1 Return
(dim h1 as bit)
und dann wenn led 1 50% leuchten soll musst du h1=1 und in der timer-routine if h1=1 then toggle led1
ja vielen Dank, das wollte ich wissen
Nur eine Sache ist mir noch unklar. Was defniert bzw macht der Befehl
z.B. Toggle LED1
Gruß
Stefan
Hi!
Toggle Led1
schaltet Led1 von High auf Low(wenn auf High war)
oder
schaltet Led1 von Low auf High(wenn auf Low war)
also zb. von 0V auf 5V oder von 5V auf 0V
je nachden "Urzustand"
gruß,MX3
Lesezeichen