Hi,
habe mir mal noch einmal vor dem Brennen die Sourcen kurz angeschaut ( habe es mal auf Pin B2 umgebogen ). DAbei ist mir ein kleiner Fehler ? Stackoverflow aufgefallen :
Code
_GetCh:
;-> Sensorpinabfrage
sbic PINB,2
rjmp _GetCh1
cli
rcall _PWon
sei
rjmp init
_GetCh1:
sbis USR,0x07
rjmp _GetCh
in zl,UDR
ret
Alles anzeigen
Wenn die Routine _GetCh angesprungen wird, liegt die Rücksprungadresse noch auf dem Stack. Da die Init.Routine den Stack nicht zurücksetzt, wächst der Stack langsam immerweiter an, da nach der Sensorabfrage mit dem rjmp ja der Stack nicht aufgeräumt wird. Ich würde den rjmp ganz rausnehmen, oder vorher 2* einen POP machen, damit die 2 Byte vom Stack wieder verschwinden, oder vor dem RET ein Label setzen und dies anspringen. Korregier mich, wenn ich das auf die schnelle falsch interpretiere.
edit on:
Habe mal den RJMP mit ";" auskommentiert
edit off