- 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 Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Hallo,
    was soll denn der Befehl
    "On Timer1 'schaltet Portd.0 im Sekundentakt"
    in der ISR bewirken? Mich wundert, dass der Compiler nicht das fehlende Label anmeckert.
    Im schlechtesten Fall führt dies dazu, dass vom ersten Aufruf ab keine ISR mehr definiert ist. Und was hat das mit Portd.0 zu tun?

    Gruß

    Rolf

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2007
    Beiträge
    27
    Hallo Rolf,

    mittlerweile habe ich es geschafft die Variable Zähler im Sekundentakt hochzuzählen.

    Aber vielleicht kannst du mir mit meinem Grundproblem helfen.

    Ich habe mehrere Programme die einzeln alle funktionieren.

    Das ist zu einem ein Programm zur Temperaturmessung, eines zur Uhrzeitanzeige (DCF77), eines zur Datumsanzeige (DCF77) und als letztes eines zur I2C Übertragung.

    Einzeln funktioniert das alle super. Nun möchte ich alle Werte hintereinander auf ein LED Display übertragen.

    Ich hatte versuchtes so zu lösen:
    Die Temperatur auslesen; anzeigen:
    Wait 3
    Uhrzeit anzeigen
    Wait 3
    Datum anzeigen
    Wait 3

    das scheint nicht die richtige Vorgehensweise zu sein, da ich durch Wait den Prozessor stoppe und das DCF77 nicht mehr weiter verarbeitet wird.

    Also müsste ich da wohl anders lösen:

    Mir fallen da die Timer ein. Wie macht man sowas?

    Leider bin ich Anfänger.

    Gruß

    Richard

Berechtigungen

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

Solar Speicher und Akkus Tests