timer auch richtig konfiguriert, dass er auch läuft? die Configs haste nämlich nicht mitgepostet
Moin.
Kurze Frage:
Das folgende (Teil-)Programm sollte ja von der Struktur her einen 16-Bit-Timer immer wieder von 0-65535 zählen lassen:
Do
if x>0 then print x
Loop
ISRTimer1:
Timer1=0
Return
ISRInt0:
x = Timer1
Wenn ich nun mit einem Interrupt den aktuellen Timer-Wert abfragen will, erhalte ich aber immer 0. Dass der Zufall es so will und ich immer exakt bei 0 drücke, glaub ich nicht. Woran kann das noch liegen?
MfG
timer auch richtig konfiguriert, dass er auch läuft? die Configs haste nämlich nicht mitgepostet
Vor den Erfolg haben die Götter den Schweiß gesetzt
die sind konfiguriert... also der ganzen Config/DIM/Declare-Teil sei mal als korrekt vorausgesetzt, ebenso dass die Interrupts und Timer alle enabled sind...
Enable Interrupts
Config Timer1 = Timer, Prescale = 8
On Timer1 ISRTimer1
Enable Timer1
Config Int0 = Rising
On Int0 ISRInt0
Enable Int0
Ich würde anstelle von Print mal Print X versuchen.
Das Timer=0 im Timer-Interuppt kannst Du dir sparen, da er beim Überlauf sowieso 0 ist.
MfG
Also hab die ganze nacht lang probiert (das fehlende X hab ich dann auch noch gefunden)
Dabei hab ich dann den "Header" auch nochmal neu geschrieben bzw. aus einem alten Programm kopiert... und schon kommen Ergebnisse an.
Der alte Header war:
$regfile = "m8def.dat"
$crystal = 8000000
$framesize = 32
$swstack = 32
$hwstack = 32
Der neue:
$regfile = "m8def.dat"
$crystal = 8000000
$framesize = 40
$swstack = 10
$hwstack = 32
Macht das nun wirklich so viel aus?
Lesezeichen