The interrupt works perfect but if I hold the button down for a little while then let up the interrupt will hang, but if you just wait it will come out of it and start working again.Using a 16F688.
Code:define OSC 4 INCLUDE "DT_INTS-14.bas" ' Base Interrupt System include "ReEnterPBP.bas" @ ERRORLEVEL -306 ; turn off crossing page boundary message '-----------------------REGISTERS---------------------------------------- TRISA=%111000 ' RA3,RA4,RA5 inputs ANSEL=%00000000 ' All digital TRISC=%00000011 ' RC0,RC1, input CMCON0=%111 ' Shut off comparators ;OPTION_REG.7=0 WPUA=%111000 ' Weak Pull Ups Enabled INTCON.7=1 'Enable Global Interrupts IOCA=%110000 'Enable IOC 'Variables--------------------------------------------------------------------- Forward var PORTC.0 ForwardBut var PORTA.4 Reversed var PORTC.1 ReverseBut var PORTA.5 Led var PORTC.2 ASM INT_LIST macro ; IntSource, Label, Type, ResetFlag? INT_Handler RAC_INT, _Motor, PBP, yes endm INT_CREATE ; Creates the interrupt processor INT_ENABLE RAC_INT ; enable ioc ENDASM Main: high led pause 200 low led pause 200 goto main Motor: if ForwardBut=0 then high forward pause 100 do while ForwardBut=0 loop low forward endif if ReverseBut=0 then high reversed pause 100 do while ReverseBut=0 loop low reversed endif @ INT_RETURN




Bookmarks