aha .. might be getting somewhere. i figured out what you mean by RETFIE in position one. i moved it and program quit working all together, but that's progress. i think i'm heading in right direction :) thanks jan-erik dld On Fri, 26 Sep 2003 22:41:28 +0200, Jan-Erik Soderholm XA (TN/PAC) wrote: >What language/tool ? >What PIC type ? >What is this "GOTO" and "DEFINE" ? Doesn't look as MPASM !? >What is "asm" and "endasm" ? >Why is only the retfie instruction starting in pos 1 ? >Why restore w, status and pclath if you don't save them ? > >Jan-Erik > > > >-----Original Message----- >From: David Dunn [mailto:ddunn@TCAINTERNET.COM] >Sent: den 26 september 2003 22:02 >To: PICLIST@MITVMA.MIT.EDU >Subject: [PIC]: Interrupts > > >I'm at wits end here, for some reason my ISR doesn't seem to be working. I'm monitoring '_TENTHS' in the main >program loop and it's not incrementing. Have I missed something obvious ? What kinds of things would keep the >TIMER0 interrupt from running ? > >Thanks for any ideas. > > >DLD > >-------------------------------------------------------------------------------------------------------------- > > >wsave var BYTE $020 SYSTEM >wsave1 var BYTE $0a0 SYSTEM >wsave2 var BYTE $120 SYSTEM >wsave3 var BYTE $1a0 SYSTEM >ssave var BYTE BANK0 SYSTEM >psave var BYTE BANK0 SYSTEM > >GOTO AFTERINT 'Jump past interrupt handler > >DEFINE INTHAND isr > >asm > >isr ; int handler begins here > > ;bsf portb,7 > > btfsc INTCON,1 ; test if external interrupt (portb.0) occurred > goto portbint ; jump over to (portb.0) int handler. otherwise, just fall thru to TIMER0 handler > >timer0int > > movlw 0x9e ;reload timer with (256 - (1)200) + 2 (3a for .1, 9e for .05) > movwf TMR0 > incf _TENTHS ;increase TENTHS value > bcf INTCON,2 ;clear tmr0 interrupt flag > goto exitisr > >portbint > > movf TMR1H,W ;read value on timer1 > movwf _TMR1HI ;store it in some variable > movf TMR1L,W > movwf _TMR1LO > > clrf TMR1L ;load timer1 with zero again > clrf TMR1H > > bcf INTCON,1 ;clear rb0 interrupt flag > >exitisr > ;restorecode follows here > movf psave,w > movwf PCLATH > swapf ssave,w > movwf STATUS > swapf wsave,f > swapf wsave,w > >retfie > >endasm > >AFTERINT: > > ' set up timer0 > TMR0 = 0 > INTCON = %00000000 > OPTION_REG = %11000111 > INTCON = %10100000 > >-- >http://www.piclist.com hint: The PICList is archived three different >ways. See http://www.piclist.com/#archives for details. > >-- >http://www.piclist.com hint: The PICList is archived three different >ways. See http://www.piclist.com/#archives for details. David Dunn Digital Racing Products dave@digitalracingproducts.com www.digitalracingproducts.com -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.