-         

Ergebnis 1 bis 7 von 7

Thema: Timer1, 1 sekunden Takt, ungenau ?!

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576

    Timer1, 1 sekunden Takt, ungenau ?!

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo Leute (Schon wieder ein Frage )

    Ich probiere gerade mit Timer1 herum und möchte gerne einen 1Sekunden Takt zusammenbekommen, damit eine Variable, alle sekunden hochgezählt wird.


    Das Grundgerüst schaut im Prinzip so aus:

    Code:
    Config Timer1 = Timer , Prescale = 256   
    On Timer1 Zeit
    Enable Timer1
    Enable Interrupts
    
    do 
    Lcd B
    Print x
    loop
    end
    
    
    Zeit:
     Load Timer1 , 31250
     Incr B
    Return
    Aber die Sekunden sind leider nicht genau
    Nach ca. 3 Minuten, geht mir der Zähler schon ca. 1 sekunde hinten !

    Was habe ich falsch gemacht ?

    Habe einen 8Mhz Quarz

    8000000/256(Prescaler) = 31250

    Habe izwischendrinn noch eine Serielle Ausgabe .
    Kann das den Timer1 beeinflussen?
    Wird für die Serielle Ausgabe eigentlich ein Timer verwendet ?
    (der vielleicht stört ?)

    Das setzen von Timer1 auf " Load Timer1,31250" oder Timer1= 34286
    (ist doch das gleiche ?),
    wo muss ich das machen ?
    Sehe das meist in der ISR....
    Müsste man das nicht auch schon nach aktivieren von Timer1 machen ?


    l.G. Roberto

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    ..Serielle Ausgabe . Kann das den Timer1 beeinflussen?
    nööö. nicht wirklich.
    ..Serielle Ausgabe eigentlich ein Timer verwendet ?
    nööö
    ..Load Timer1,31250" oder Timer1= 34286
    Jacke wie Hose
    ..Müsste man ..schon nach aktivieren von Timer1 machen ?
    woll. klaro, sonst rennt er beim ersten mal ja von null weg
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hallo Robert

    Passt mein Code jetzt eigentlich ?
    Warum passt die Zeit nicht ?

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Du mußt wohl etwas länger zählen, denn 1 Event +/- ist zu wenig, um genau zu beurteilen. Dann (1 Tag ?) bekommst du einen % Fehler, der wahrscheinlich einfach auf den quarz zurückzuführen ist.
    So oder so wär wichtig, den Zeitpunkt=0 genau mit dem Vergleichsinstrument abzustimmen.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    14.09.2005
    Alter
    61
    Beiträge
    77
    Eine Sekunde bei 3 Minuten ist schon heftig. Das kann kaum der quarz sein.

    Bis du sicher das der Controller mit dem quarz läuft, und nicht mit dem internen Oszillator

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Eine Sekunde bei 3 Minuten
    Ist halt die Frage, wie die Meßmethode war.
    Eine Sekunde kann sein 0,99 oder 0,000001
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hallo

    Ich glaube ich habe den Fehler gefunden

    Bei einem Unterprogramm ist mir das Return abhanden gekommen und hinter dieser war das ISR vom Timer.

    Das erste Unterprogramm lief da bis zum Timer1-ISR durch und das ging sich vermutlich so ca. mit 1 Sekunde aus. (mit Waits..u.s.w.)

    Return jetzt richtig gesetzt und es funktionier

    So gehts einem ...

    Dank für Eure Antworten

Berechtigungen

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