Hallo !
Wie wäre es in der ISR mit :
CodeBox bascom
Mal abgesehen davon, was das Timertool errechnet hat.
Von Hand würde ich sagen:
Prescaler x Timerbreite
---------------------- = Überlaufzeit
Systemtakt
Bei meinem Vorschlag von 64 wäre es dann:
64 x 65536
----------- = 0,262144 sec. also 262,144ms
16.000.000
Das muss ja viel zu schnell sein!
Was rechnet die Software denn da aus?
Ergo ist deine 256 die richtige Wahl gewesen, denn:
256 x 65536
------------ = 1,048576 sec.
16.000.000
Die Sekunde dauert also "nur" 48,576ms zu lange!
Dies musst du nun noch ändern.
Wenn du 1,048576 / 65536 rechnest, hast du die Zeitspanne eines Timerbits, also 0,000016 sec.
Demnach brauch Timer1 für eine Sekunde: 1 / 0,000016 = 62500 bits
Bleibt also der "Restwert" zum laden des Timers mit 3036!
Daher war dein alter Timerwert absolut richtig!!!
Warum die Software nun etwas völlig anderes ausgerechnet hat?
OK, lassen wir das!
Wenn deine Uhr nun zu langsam ist, dann lade deinen Timer1 doch einfach mit einem höheren Wert.
Allerdings ist das auch nur eine Notlösung.
Gruß,
Cassio
Wie wäre es in der ISR mit :
CodeBox bascom
Test:
Stop Timer1
Incr Sekunde
Timer1 = 3036
Start Timer1
Return
Mal abgesehen davon, was das Timertool errechnet hat.
Von Hand würde ich sagen:
Prescaler x Timerbreite
---------------------- = Überlaufzeit
Systemtakt
Bei meinem Vorschlag von 64 wäre es dann:
64 x 65536
----------- = 0,262144 sec. also 262,144ms
16.000.000
Das muss ja viel zu schnell sein!
Was rechnet die Software denn da aus?
Ergo ist deine 256 die richtige Wahl gewesen, denn:
256 x 65536
------------ = 1,048576 sec.
16.000.000
Die Sekunde dauert also "nur" 48,576ms zu lange!
Dies musst du nun noch ändern.
Wenn du 1,048576 / 65536 rechnest, hast du die Zeitspanne eines Timerbits, also 0,000016 sec.
Demnach brauch Timer1 für eine Sekunde: 1 / 0,000016 = 62500 bits
Bleibt also der "Restwert" zum laden des Timers mit 3036!
Daher war dein alter Timerwert absolut richtig!!!
Warum die Software nun etwas völlig anderes ausgerechnet hat?
OK, lassen wir das!
Wenn deine Uhr nun zu langsam ist, dann lade deinen Timer1 doch einfach mit einem höheren Wert.
Allerdings ist das auch nur eine Notlösung.
Gruß,
Cassio