- Labornetzteil AliExpress         
Ergebnis 1 bis 3 von 3

Thema: Timer und Zähler

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2007
    Beiträge
    27

    Timer und Zähler

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    was mache ich da eigentlch falsch?

    Der Zähler müsste doch im Sekundentakt hochzählen, oder?

    Code:
     $regfile = "m32def.dat"
     $framesize = 40
     $swstack = 10
     $hwstack = 32
     $crystal = 8000000
     $baud = 9600
    
    Config Portc.2 = Output                                     'definiert Portd als Output
    Dim Zaehler As Byte
    Zaehler = 0
    
    
    Config Timer1 = Timer , Prescale = 256    'Konfiguriere Timer1
    Enable Timer1                             'schalte den Timer1 ein
    On Timer1 Isr_von_timer1                  'verzweige bei Timer1 überlauf zu   Isr_von_Timer1
    Enable Interrupts
    Timer1 = 34285                            'Timer1 soll schon von 34285 wegzählen
    
    Do
    
    Print "Zaehler =" ; Zaehler
    
    If Zaehler = 2 Then
    Goto Uhrzeit
    End If
    
    
    If Zaehler = 4 Then
    Goto Datum
    End If
    
    
    If Zaehler = 6 Then
    Goto Temperatur
    End If
    
    
    Loop
    End
    
    Isr_von_timer1:                            'ISR von Timer1
    Timer1 = 34285                                              'Timer1 soll wieder von 34285 wegzählen
    On Timer1                                                   'schaltet Portd.0 im Sekundentakt
    Incr Zaehler
    
                                               'EIN und AUS
    '....oder z.B. incr Variable
    
    Uhrzeit:
    Print "Uhrzeit"
    
    Datum:
    Print "Datum"
    
    Temperatur:
    Print "Temperatur"
    Gruß

    Richad

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    da iss glaubich wohl einiges falsch ^^
    1. nen timer muss man meiner meinung nach auch starten
    2. du hast kein return-jump in deiner isr, d.h. das programm beendet sich im prinzip nach dem ersten jump beim timerüberlauf
    3. du willst portd.0 setzen und configst dafür c.2 als output?

    Code:
     $regfile = "m32def.dat"
     $framesize = 40
     $swstack = 10
     $hwstack = 32
     $crystal = 8000000
     $baud = 9600
    
    Config Portd.0 = Output                                     'definiert Portd als Output
    Dim Zaehler As Byte
    Zaehler = 0
    
    
    Config Timer1 = Timer , Prescale = 256    'Konfiguriere Timer1
    Enable Interrupts
    Enable Timer1                             'schalte den Timer1 ein
    On Timer1 Isr_von_timer1                  'verzweige bei Timer1 überlauf zu   Isr_von_Timer1
    Timer1 = 34285                            'Timer1 soll schon von 34285 wegzählen
    Start Timer1
    
    Do
    
    Print "Zaehler =" ; Zaehler
    
    If Zaehler = 2 Then
    Goto Uhrzeit
    End If
    
    
    If Zaehler = 4 Then
    Goto Datum
    End If
    
    
    If Zaehler = 6 Then
    Goto Temperatur
    End If
    
    
    Loop
    End
    
    Isr_von_timer1:                            'ISR von Timer1
    Timer1 = 34285                                              'Timer1 soll wieder von 34285 wegzählen
    Toggle Portd.0
    Incr Zaehler
    Return
    
    Uhrzeit:
    Print "Uhrzeit"
    
    Datum:
    Print "Datum"
    
    Temperatur:
    Print "Temperatur"
    so, ich gloob des sollt besser funzn ^^

    Maddin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2007
    Beiträge
    27
    Vielen Dank Maddin.

    Gruß aus Franken

    Rici

    [quote="x-ryder"]da iss glaubich wohl einiges falsch ^^
    1. nen timer muss man meiner meinung nach auch starten
    2. du hast kein return-jump in deiner isr, d.h. das programm beendet sich im prinzip nach dem ersten jump beim timerüberlauf
    3. du willst portd.0 setzen und configst dafür c.2 als output?

Berechtigungen

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

Labornetzteil AliExpress