Hm, war mir gar nicht aufgefallen... #-o
Du kannst das Timing etwas abgleichen, indem du den $Crystal etwas änderst. Eine Zeitlang laufen lassen, die Abweichung feststellen, Dreisatz > Wert korrigieren.
Druckbare Version
Hm, war mir gar nicht aufgefallen... #-o
Du kannst das Timing etwas abgleichen, indem du den $Crystal etwas änderst. Eine Zeitlang laufen lassen, die Abweichung feststellen, Dreisatz > Wert korrigieren.
Probier's mal so:Zitat:
Jetzt hab ich allerdings noch das Problem der extremen
Ungenauigkeit.
Gruß DirkCode:'/////////////////////////////////////////////////////////////////////////////
'Stand: 19.01.2008
'Name: ""
' ATMEGA8- SelbstBauModul
'/////////////////////////////////////////////////////////////////////////////
$regfile = "m8def.dat"
$crystal = 14745600 'ext. Quarz
'/// DEFINITIONEN ///////////////////////////////////////////////////////
' Ausgänge
Config Pinb.2 = Output ' Pin B.2 als OUTPUT => Relais+LED
'/// TIMER /////////////////////////////////////////////////////////////////////
Config Timer1 = Timer , Prescale = 256 'Takt: Quarz/256
' Bei 14Mhz Quarz => T = 2 hoch 16 x 256/ 14Mhz = 1,13 sec Periode
' 1/ 1,3 = 0,879 sec
Const Startwert = 7936
On Timer1 Ontimer1 'Interrupt-Routine für Timer1-Overflow
Enable Timer1 'Timer1-Overflow-Interrupt einschalten
Enable Interrupts 'Interrupts global zulassen
'---------------------------------------------------------
Do
nop
Loop
End
'---------------------------------------------------------
Ontimer1: 'Interrupt-Routine
Timer1 = Startwert
Toggle Portb.2 ' Ein=> Aus
Return
P.S.: $crystal NICHT ändern, weil sich auch andere Timings damit verschieben (z.B. RS232)!
Diese sollten doch ebenfalls von der Abweichung betroffen sein und danach genauer werden, oder habe ich da bisher falsch gedacht?Zitat:
P.S.: $crystal NICHT ändern, weil sich auch andere Timings damit verschieben (z.B. RS232)!
Die Abweichung, die Hans beim Toggeln eines Ports festgestellt hat, liegt nicht am Quarz! Wenn der so ungenau wäre, müßte man den Hersteller verklagen.Zitat:
Diese sollten doch ebenfalls von der Abweichung betroffen sein und danach genauer werden, oder habe ich da bisher falsch gedacht?
Das Problem war hier die Timer-Konfiguration.
Gruß Dirk
Hallo!
Das vom Dirk funzt irgendwie besser! Danke, ich hab's gerade probiert.
Wie bist du jetzt auf diesen Wert gekommen?
Gruß
Hans
Hallo Hans,
vielleicht hilft das:
https://www.roboternetz.de/wissen/in...scom_und_Timer
Für die Berechnung von Timer-Startwerten gibt es Tools. Falls du da was brauchst: E-Mail.
Gruß Dirk
Danke, das hilft!
Gruß
Hans