- 3D-Druck Einstieg und Tipps         
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

    Powerstation Test
    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
    35
    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
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad