-
        

Ergebnis 1 bis 10 von 10

Thema: LED 50 % an

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.11.2005
    Beiträge
    88

    LED 50 % an

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    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

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    16.10.2005
    Ort
    Adendorf
    Alter
    35
    Beiträge
    46
    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

  3. #3
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    ..oder du arbeitest mit einer PWM.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    20.11.2005
    Beiträge
    88
    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ß

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.11.2004
    Beiträge
    370
    software-pwm wäre wenn du nen timer baust mit 5khz frequenz zB und dann in der timer-routine je nach bedingung

    Code:
    toggle portpin
    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.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    20.11.2005
    Beiträge
    88
    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..

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.11.2004
    Beiträge
    370
    Code:
    $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
    das ganze ist nur theoretisch zusammengepappt - wenn du mehr leds hast must du dir hilfsbits machen
    (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

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    20.11.2005
    Beiträge
    88
    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

  9. #9

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    09.10.2004
    Beiträge
    40
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •