Hi

ich habe Folgendes Problem

Mit einem µC erzeuge ich einen gleichmäßigen Takt

Code:
$regfile "m8def.dat"
$crystal = 10000000

Config Portd = Output

Do
Set Portd.2
Nop
Nop
Nop
Nop
Reset Portd.2

Waitms 999
Loop

Dies Klappt scheinbar auch soweit Fehlerfrei




Ein Zweiter µC Stoppt diese Zeit
Und gibt diesen wert über UART aus

Code:
$regfile "m8def.dat"
$crystal = 10000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600

Config Timer0 = Timer , Prescale = 1
Config Timer1 = Timer , Prescale = 256
 Config Int0 = Rising
'6 Takte für Timer

Enable Interrupts

Enable Int0                                                 'enable the interrupt

On Int0 Send Nosave


Stop Timer0
Stop Timer1
Timer0 = 0
Timer1 = 0

Start Timer0
Start Timer1

Do

Loop

Send:
Stop Timer0
Stop Timer1

Print "Timer1= " ; Str(timer1) ; "Timer0= " ; Str(timer0)

Timer0 = 0
Timer1 = 0

Start Timer0
Start Timer1
Return


So weit so gut

die Ausgabe sieht wie folgt aus

Timer1= 37920Timer0= 199
Timer1= 37920Timer0= 213
Timer1= 37920Timer0= 233
Timer1= 37920Timer0= 251
Timer1= 37920Timer0= 205
Timer1= 37920Timer0= 223
Timer1= 37920Timer0= 239
Timer1= 37920Timer0= 253
Timer1= 37920Timer0= 203
Timer1= 37920Timer0= 215
Timer1= 37920Timer0= 227
Timer1= 37920Timer0= 239
Timer1= 37920Timer0= 253
Timer1= 37919Timer0= 203
Timer1= 37920Timer0= 219
Timer1= 37920Timer0= 239
Timer1= 37920Timer0= 1
Timer1= 38001Timer0= 19 <-- Woher kann dieser Sprung kommen?
Timer1= 37960Timer0= 133
Timer1= 37920Timer0= 247
Timer1= 37920Timer0= 199
Timer1= 37920Timer0= 219
Timer1= 37920Timer0= 235


Zur Beschaltung

Gemeinsame Masse
Gemeinsamme Betriebspannung 7805
an jedem µC mit 100n abgeblockt

Quarze haben jeweils 2 33p dran

Ich hoffe das mir Einer einen Tipp geben kann woher dieser Sprunghafte wert herkommen kann

Mit Freundlichem Gruß
Thomas