The interrupt on change is created by a matrix keyboard connected on portB (0-6).
I noticed that a short keypress allows PIC go to sleep, while a longer press keeps it semi awake.
Then I added this while-wend check just before pressed=0 in the main routine and now works OK:
Code:
main:
portb=$78 'set port to 01111000
txsta=0 'Turn off all peripherals
rcsta=0 'before sleeping
adcon0.0=0 'Disable ADC
while pressed:pause 10:wend
pressed=0 'reset flag pressed
intcon.0=0 'reset RBIF flag
t1con.0=0 'turn off timmer 1
buzzer=0
@ sleep
@ nop
Though not elegant nor explains why this happens, it kinda fixed the problem.
Ioannis
Bookmarks