- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 14

Thema: Zeitliche Ablaufsteuerung

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.716
    Blog-Einträge
    133
    Hallo,
    so vielleicht. Ungetestet und ist bestimmt noch +- 1Sekunde Toleranz im Timing.
    Meine Änderungen in Grün. Hoffenlich hab ich alles erwischt.

    Gruß
    Searcher


    Code:
    $regfile = "m48def.dat"
    $crystal = 12000000
    $framesize = 32               
    $swstack = 32                   
    $hwstack = 34                    
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc
    Dim Light As Word
    Dim Bright As Word
    Dim Dark As Word
    Ldr Alias Getadc(0)
    Licht Alias Portb.0
    Config Licht = Output
    Reset Licht
    Light = 0
    Dark = 400
    Bright = 600
    
    
    Dim Sekundenzaehler As Word
    ocr1a = 11718                            'OCR1A Wert für Interrupt nach ca. 1,00002133 Sekunden
    Config Timer1 = Timer , Prescale = 1024 , Clear_timer = 1       'startet Timer1 im CTC Modus mit OCR1A as Top
    On compare1a Isr_sekundeninterrupt           'ISR wird jede Sekunde aufgerufen wenn ICP interrupt enabled ist
    Enable Interrupts                       'Interrupts global zulassen
    
    
    Do
       'Nacht
       If Ldr < Dark Then
          Wait 2
          If Ldr < Dark Then
             'Light = 1                     'wird in ISR gesetzt
             Enable compare1a                    'Sekundenzaehler laufen lassen wenn es dunkel ist
          End If
       End If
       'Tag
       If Ldr > Bright Then
          Wait 2
          If Ldr > Bright Then
             Disable compare1a                   'Sekundenzaehler stoppen wenn es hell ist
             Sekundenzaehler = 0            'initialisieren
            Light = 0
          End If
       End If
       If Light = 1 Then
          Licht = 1
       Else
          Licht = 0
       End If
    
    Loop
    
    Isr_sekundeninterrupt:
      If Sekundenzaehler < 30 Then Light = 1 Else Light = 0       '30 Sekunden Licht/Sirene an danach aus
      If Sekundenzaehler = 3600 Then Sekundenzaehler = 0       'Sekundenzaeler nach einer Stunde wieder bei 0 beginnen lassen
      Incr Sekundenzaehler
    Return
    
    End
    Geändert von Searcher (31.07.2013 um 09:03 Uhr) Grund: Sekundenzähler unter "Bright" initialieren, ICR1 Wert berichtigt, INT-Typ berichtigt
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Ähnliche Themen

  1. [ERLEDIGT] Zeitliche begrenzung beim fahren Hilfe benötigt
    Von voxya im Forum Asuro
    Antworten: 3
    Letzter Beitrag: 05.11.2011, 12:20
  2. Antworten: 8
    Letzter Beitrag: 09.02.2011, 17:00

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress