Thomas$
11.09.2012, 17:32
Hi
ich habe Folgendes Problem
Mit einem µC erzeuge ich einen gleichmäßigen Takt
$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
$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
ich habe Folgendes Problem
Mit einem µC erzeuge ich einen gleichmäßigen Takt
$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
$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