- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 12 von 12

Thema: Flankenwechsel erkennen, aber wie?

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Anzeige

    Powerstation Test
    Eine Idee:
    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    Config Timer0 = Timer , Prescale = 1024                     'längster Impuls (bei 1 MHZ etwa 1/4 Sekunde) für längere Zeit 16 Bit Timer nehmen
    On Timer0 Timer_irq
    Enable Timer0
    Enable Interrupts
    Ddrc = &B00001111                                           'Ausgänge an Port C0-3
    Ddrb = 0                                                    'Eingänge an B0-3
    Dim Pinb_alt As Byte
    
    Do
    
    
    Loop
    End
    
    
    Timer_irq:
       Dim I As Byte
    
       For I = 0 To 3
          If Pinb_alt.i <> Pinb.i Then
             Set Portc.i
          Else
             Reset Portc.i
          End If
       Next I
       Pinb_alt = Pinb
    Return
    Oder für längeren Impuls:

    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    Const Impulsdauer = 5                                       '4fache Impulsdauer
    Config Timer0 = Timer , Prescale = 1024                     'längster Impuls (bei 1 MHZ etwa 1/4 Sekunde) für längere Zeit 16 Bit Timer nehmen
    On Timer0 Timer_irq
    Enable Timer0
    Enable Interrupts
    Ddrc = &B00001111                                           'Ausgänge an Port C0-3
    Ddrb = 0                                                    'Eingänge an B0-3
    Dim Pinb_alt As Byte
    Dim Zeit(4) As Byte
    Dim I As Byte
    
    Do
       If Zeit(4) >= 1 Then                                     '>=1 erzeugt kleineren Code als >0...
    
          For I = 0 To 3
             If Zeit(i) >= 1 Then
                Decr Zeit(i)
             End If
             If Zeit(i) = 0 Then
                Reset Portc.i
             Else
                Set Portc.i
             End If
    
             If Pinb_alt.i <> Pinb.i Then
                Zeit(i) = Impulsdauer
             End If
          Next I
          Pinb_alt = Pinb
          Zeit(4) = 0
       End If
    
    Loop
    End
    
    
    Timer_irq:
       Incr Zeit(4)
    Return
    Geändert von peterfido (25.06.2011 um 22:24 Uhr)
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo,

    hier mal ein Code für die Interrupts eines Mega88. Da der Change Interrupt nicht zwischen ansteigender und abfallender Flanke unterscheidet, wird einfach der Pegel des Pins im Interrupt abgefragt.

    Code:
    Config Int0 = Change 
    Config Int1 = Change
    On Int0 Int_0
    On Int1 Int_1
    
    Int_0:                                                      'A changing Flank was detected from the left Sensor
       If Pind.2 = 1 Then                                       'the rising Flank
    'Int0 (PinD.2) ist gerade auf High gesprungen
       Else                                                     'the falling Flank
    'Int0 (PinD.2) ist gerade auf Low gesprungen
       End If
    Return
    
    Int_1:                                                      'A changing Flank was detected from the left Sensor
       If Pind.3 = 1 Then                                       'the rising Flank
    'Int1 (PinD.3) ist gerade auf High gesprungen
       Else                                                     'the falling Flank
    'Int1 (PinD.3) ist gerade auf Low gesprungen
       End If
    Return
    Gruß Günter

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. 12V mit AVR erkennen
    Von phyro im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 01.07.2009, 21:45
  2. Ball erkennen
    Von Luca im Forum Sensoren / Sensorik
    Antworten: 8
    Letzter Beitrag: 17.09.2008, 16:26
  3. flankenwechsel detektieren
    Von alper im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 10.05.2007, 13:04
  4. Kondensatorkapazität erkennen
    Von MischaMV im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 28.02.2006, 17:49
  5. gcc erkennen?
    Von bluebrother im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 09.11.2005, 12:10

Berechtigungen

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

Solar Speicher und Akkus Tests