- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 23

Thema: 4 Led´s unabhängig per Zufall blinken lassen?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    40
    Beiträge
    647
    Hi,

    danke für eure Antworten. Ich habe jetzt auch mal meinen Ansatz in Bascom umgesetzt.

    Code:
    $regfile = "m48def.dat"
    $crystal = 1000000
    
    Config Timer0 = Timer , Prescale = 8
    
    Config Pinb.1 = Output
    Config Pinb.2 = Output
    Config Pinb.3 = Output
    Config Pinb.4 = Output
    
    Mg1 Alias Pinb.1
    Mg2 Alias Pinb.2
    Mg3 Alias Pinb.3
    Mg4 Alias Pinb.4
    
    Dim Mg1flag As Byte
    Dim Mg2flag As Byte
    Dim Mg3flag As Byte
    Dim Mg4flag As Byte
    Dim Mg1time As Integer
    Dim Mg2time As Integer
    Dim Mg3time As Integer
    Dim Mg4time As Integer
    Dim I As Integer
    
    Const Timervorgabe = 131
    On Timer0 Timer_irq
    Enable Timer0
    Enable Interrupts
    
    Mg1flag = 0
    Mg2flag = 0
    Mg3flag = 0
    Mg4flag = 0
    Mg1time = 0
    Mg2time = 0
    Mg3time = 0
    Mg4time = 0
    
    Do
    
    Loop
    End
    
    Timer_irq:
    Timer0 = Timervorgabe
    If Mg1time = 0 Then
       If Mg1flag = 0 Then
             Mg1time = Rnd(10) + 46     '46 weil ich gerne 51 +- 5 ms hätte
             Mg1 = 1
             Mg1flag = 1
       Else
            Mg1time = 10
            Mg1 = 0
            Mg1flag = 0
       End If
    End If
    
    If Mg2time = 0 Then
       If Mg2flag = 0 Then
             Mg2time = Rnd(10) + 46
             Mg2 = 1
             mg2flag = 1
       Else
            mg2time = 10
            mg2 = 0
            mg2flag = 0
       End If
    End If
    
    If Mg3time = 0 Then
       If mg3flag = 0 Then
             mg3time = Rnd(10) + 81
             mg3 = 1
             mg3flag = 1
       Else
            mg3time = 10
            mg3 = 0
            mg3flag = 0
       End If
    End If
    
    If mg4time = 0 Then
       If mg4flag = 0 Then
             mg4time = Rnd(10) + 81
             mg4 = 1
             mg4flag = 1
       Else
            mg4time = 10
            mg4 = 0
            mg4flag = 0
       End If
    End If
    
    Mg1time = Mg1time - 1
    Mg2time = Mg2time - 1
    Mg3time = Mg3time - 1
    Mg4time = Mg4time - 1
    
    Return
    Der ist allerdings auch noch ungetestet. Es geht sicherlich noch einfacher da muss ich nochmal ran und optimieren. Ich gucke nachher mal in Bascom wielange ein IRQ braucht. Dann muss ich evtl auf 2ms "Auflösung" gehen oder ich setz die Fuses auf 8Mhz dann wirds wohl reichen!? Soo Zeitkritisch ist das ganze nicht. Ob ich überhaupt mit den Zeiten so klar komme oder ob ich die Pausen länger ziehen muss weiss ich auch noch nicht. Aber ich denke das gröbste ist geschafft.

    EDIT: Ok ich muss die Fuses für 8Mhz setzen. Mit 1Mhz schafft er die IRQ nicht rechtzeitig zu beenden. Bei 8Mhz schafft er es ganz locker.

    @Mic: Deine Lösung scheint schonmal etwas kürzer zu sein. Das werde ich mir nachher mal genauer ansehen. Durch den Toggle Befehl würde ich ja schonmal die Flags und deren Abfrage sparen.

    Danke
    Gruß Daniel
    Geändert von DanielSan (19.07.2011 um 09:39 Uhr)
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

Ähnliche Themen

  1. Led blinken lassen mit Timer0
    Von sky2 im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 25.12.2009, 18:33
  2. LED blinken lassen während Programm normal weiterläuft
    Von Steffen08 im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 30.03.2009, 21:10
  3. LED im 1 oder 2 sek. Takt per Interrupt blinken lassen
    Von rogerberglen im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 17.04.2007, 19:51
  4. Led's unabhängig voneinander blinken lassen
    Von Thorsten75 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 20.03.2007, 12:41
  5. LED´s per Zufall leuchten lassen
    Von Hoomer im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 05.02.2006, 14:45

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress