- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Frage wegen timer

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380

    Frage wegen timer

    Anzeige

    Praxistest und DIY Projekte
    hallo,
    ich soll für meinen vater eine steuerung für unsere schnapsbrennerei bauen.
    jetzt soll ich ne schaltung programmieren dass ein sekundentakt läuft den ich anschalte.
    der sekundentakt läuft im moment auf portb 0
    wenn nun aber zb portc 1=1 wird soll dieser sekundentakt aufhören und er soll an portb 2 weiterlaufen. wenn dann portc 2=1 is soll er wieder an portc 0 weiterlaufen

    problem is ich weiß net wie man en sekundentakt gescheit hinbekommt mit dem timer 1 denke ich mal is es gut zu machen aber wie genau kennt ihr da en paar gescheite seiten ich hab zwar das rowalt Buch aber irgendwie werd ich da net ganz schlau.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380
    ok den sekundentakt habe ich jetzt muss ich es eben so hinkriegen wie ich es beschrieben habe.

    Code:
    $regfile = "m8def.dat"
    $crystal = 3686400
    Baud 9600
    Config Portb = Output
    
    Config Timer1 = Timer , Prescale = 64
    Enable Timer1
    On Timer1 Isr_von_timer1
    Enable Interrupts
    Timer1 = 34285
    
    Do
    
    Loop
    End
    
    Isr_von_timer1:
    Timer1 = 36736
    Toggle Portb.0
    
    
    
    Return

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Ne schön wenn Du schon ne Sekunde hast, mit der anderen Erklärung komm ich nicht so richtig klar.

    der sekundentakt läuft im moment auf portb 0
    wenn nun aber zb portc 1=1 wird soll dieser sekundentakt aufhören und er soll an portb 2 weiterlaufen.
    Code:
    if PinC.1=1 then
      Toggle Portb.2
      else
      Toggle Portb.0
    end if
    wenn dann portc 2=1 is soll er wieder an portc 0 weiterlaufen
    Wann lief der an PortC.0 schon mal????

    MfG

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380
    sorry war als beispiel gedacht. habe jetzt folgendes um erst mal des hinzubekommen. will den timer mit pinc. 0 einschalten geht aber irgendwie net ganz

    Code:
    $regfile = "m8def.dat"
    $crystal = 3686400
    Baud 9600
    Config Portb = Output
    Config Pinc.0 = Input
    
    Portc = &B00000001
    Dim Taste As Bit
    Taste = 0
    Config Timer1 = Timer , Prescale = 64
    Enable Timer1
    On Timer1 Isr_von_timer1
    Enable Interrupts
    Timer1 = 36736
    
    Do
    If Pinc.0 = 1 Then
    Taste = 1
    Else
    taste =0
    Loop
    End If
    End
    
    Isr_von_timer1:
    Timer1 = 36736
    If Taste = 1 Then
    Toggle Portb.0
    
    
    End If
    Return
    zu dem anderen also ich möchte wenn an pinc.1 eine taste gedrückt wird dass der timer auf portb.1 weiterläuft. wenn nun an pinc2 eine taste gedrückt wird soll er wieder auf pinc.0 weiterlaufen sprich er soll immer wechseln.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Wenn der Befehl If Pinc.0 = 1 Then Taste = 1 ausgeführt wird verlässt das Programm die If-Schleide und landet auf dem Befehl END. Damit endet das Programm und alles Interrups werden ausgeschaltet!!

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380
    hups alles klar hab ich jetzt weiß jemand zufällig wie ich den timer dann wechseln lasse?

    hab jetzt mal dass so geschrieben wechselt auch aber wenn ich zurückwechsle toggelt portc.0 nicht mehr weiter.
    Code:
    $regfile = "m8def.dat"
    $crystal = 3686400
    Baud 9600
    
    Config Portb = Output
    Config Pinc.0 = Input
    Config Pinc.1 = Input
    Config Pinc.2 = Input
    
    Portc = &B11111111
    Dim Taste As Bit
    Dim Taste1 As Bit
    Dim Taste2 As Bit
    
    Taste = 0
    Taste1 = 0
    Taste2 = 0
    
    Config Timer1 = Timer , Prescale = 64
    Enable Timer1
    On Timer1 Isr_von_timer1
    Enable Interrupts
    Timer1 = 36736
    
    Do
    If Pinc.0 = 0 Then
    Taste = 1
    End If
    If Pinc.1 = 0 Then
    Taste1 = 1
    End If
    If Pinc.2 = 0 Then
    Taste2 = 1
    End If
    Loop
    
    
    
    Isr_von_timer1:
    Timer1 = 36736
    
    If Taste = 1 Then
    Toggle Portb.0
    End If
    If Taste1 = 1 Then
    Portb.0 = 0
    Toggle Portb.1
    End If
    If Taste2 = 1 Then
    Portb.1 = 0
    Toggle Portb.0
    End If
    Return

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Welchen Timer willst Du wechseln? (meinst Du stoppen/starten)

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380
    ich meine jetzt wechselt er ja wenn ich pinc.1 drücke auf portb.1
    und wenn ich pinc.2 drücke sollte er wieder zurück wechseln auf portc.0 allerdings togelt er nicht weiter. sprich die led leuchtet dauernd und blinkt net.

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Is ja klar. Du setzt nacheinnander deine Taster*-Variablen auf 1 (im Hauptprogramm).
    Wenn Du dann den 3 Taster drückst führt er alle If-Schleifen in der Interruprotiene aus. Da wirst Du wohl auch mal einen deiner Taster-Variablen wieder auf null setzten müssen.

    MfG

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380
    jo wenn ich jetzt da els reinschreibe dann blinkt net mal mehr portc.2 sondern leuchtet nur noch

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad