Jetzt hab ich allerdings noch das Problem der extremen
Ungenauigkeit.
Probier's mal so:
Code:
'/////////////////////////////////////////////////////////////////////////////
'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
Gruß Dirk
P.S.: $crystal NICHT ändern, weil sich auch andere Timings damit verschieben (z.B. RS232)!
Lesezeichen