Archiv verlassen und diese Seite im Standarddesign anzeigen : interrupt timer crash
Jörn Arne
11.07.2006, 21:47
Hallo
in einem Projekt verwende ich den Timer interrupt der M-Unit 2.0 mit dem OS 2.03.
Das Problem ist, dass der interrupt etwa 3 Sekunden lang ausgeführt wird, aber dann nicht mehr.
Verwendet habe ich verschiedene Compiler Versionen(u.a. basicpp2.1.8)
Mit einer älteren Version klappt es (ich weiß nicht genau welche das war)
Vielleicht hat jemand eine Idee, bin dankbar für Hilfen
Gruß
Jörn Arne
DIE HARD
12.07.2006, 17:01
Hallo
in einem Projekt verwende ich den Timer interrupt der M-Unit 2.0 mit dem OS 2.03.
Das Problem ist, dass der interrupt etwa 3 Sekunden lang ausgeführt wird, aber dann nicht mehr.
Verwendet habe ich verschiedene Compiler Versionen(u.a. basicpp2.1.8)
Mit einer älteren Version klappt es (ich weiß nicht genau welche das war)
Vielleicht hat jemand eine Idee, bin dankbar für Hilfen
Gruß
Jörn Arne
Hallo....
Kannst du das Programm mal posten?
ciao.....
Jörn Arne
12.07.2006, 19:21
Hallo
hier mal ein kleines Testprogram, die Interrupt routine hab ich 1:1 aus meinem Projekt kopiert
Das eigentliche wäre zu umfangreich (auch viele Import Einträge)
;---------------------------
interrupt timerInterrupt
define secondthreadtimer word[31]
define activesecondthread as bit[251]
'interrupt to timer
config2.Init
config2.put 00000001b
config2.off
#init
'hier steht das eigentliche Programm
'Der timer wird dazu benutzt um Display ausgaben zu erledigen (Uhr Zeit), Hintergrundbeleuchtungen zu schalten, und u.a. als Abschalt-timer
'die Variable "Activesecondthread" wird über if Blöcke abgefragt und dem entsprechend die oben gennanten Aufgaben ausgeführt
'Das hat mit dem alten compiler immer ganz gut geklappt
pause 1
goto init
'-------------------------------------interrupt-----------------------------
#timerInterrupt
Activesecondthread = off
if (secondthreadtimer + 50 <= timer) then
beep 20,1,0 'zum testen
Activesecondthread = on
secondthreadtimer = timer
end if
return interrupt
;-----------------------------------------
'nach etwa 1 Sekunde hört man keinen Ton mehr.
'im Normalfall ist der Beep-Befehl auch auskommentiert (funktionslos)
Jörn
DIE HARD
12.07.2006, 19:58
Hallo
hier mal ein kleines Testprogram, die Interrupt routine hab ich 1:1 aus meinem Projekt kopiert
Das eigentliche wäre zu umfangreich (auch viele Import Einträge)
;---------------------------
interrupt timerInterrupt
define secondthreadtimer word[31]
define activesecondthread as bit[251]
'interrupt to timer
config2.Init
config2.put 00000001b
config2.off
#init
'hier steht das eigentliche Programm
'Der timer wird dazu benutzt um Display ausgaben zu erledigen (Uhr Zeit), Hintergrundbeleuchtungen zu schalten, und u.a. als Abschalt-timer
'die Variable "Activesecondthread" wird über if Blöcke abgefragt und dem entsprechend die oben gennanten Aufgaben ausgeführt
'Das hat mit dem alten compiler immer ganz gut geklappt
pause 1
goto init
'-------------------------------------interrupt-----------------------------
#timerInterrupt
Activesecondthread = off
if (secondthreadtimer + 50 <= timer) then
beep 20,1,0 'zum testen
Activesecondthread = on
secondthreadtimer = timer
end if
return interrupt
;-----------------------------------------
'nach etwa 1 Sekunde hört man keinen Ton mehr.
'im Normalfall ist der Beep-Befehl auch auskommentiert (funktionslos)
Jörn
Hallo....
in diesem Fall liegt es am Beep ! Die Interruptroutine muss verlassen
werden bevor der nächste Interrupt kommt. -> Beep dauert zu lang.
Was natürlich nicht die Ursache für das Problem in deinem Programm
ist, da der Beep ja auskommentiert ist !?
Versuch noch mal ein Programm mit diesem Problem zu posten.
ciao......
Jörn Arne
16.07.2006, 14:56
Hallo!
Ich habe noch einmal ein Testpogramm gebastelt, das hat erst auch nicht funktioniert, aber ich habe mir den IF Block angesehen, das Problem scheint an einer Klammer gelegen zu haben:
vorher:
if (secondthreadtimer + 50 <= timer) then
nachher:
if ((secondthreadtimer + 50) <= timer) then
der ältere compiler hat das geschluckt, deshalb meine Verwirrung...
das werd ich dann mal in meinem Projekt ausprobieren....
aber trotzdem vielen Dank
Gruß
Jörn
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.