PDA

View Full Version : My DT_Interrupts broke in PBP3... guess I'm too dense too figure out why



Byte_Butcher
- 17th November 2011, 21:09
Well, now that I've switched from PBP2..6 to PBP3 I seem to be having trouble with DT_Interrupts in some "previously working" code. :(

I've read the manual about migrating from PBP2.6 to 3.0, and have successfully applied it to other programs, but can't seem to get it going on this one.

The chip is a 16F726. It uses DT_interrupts in a touch sensor routine.
The code worked when compiled with PBP2.6 but creates some "ASM Errors" with PBP3

Here's the errors I get:
6122


Here's my ASM code. First, some config stuff.
Used to be:


@ __config _CONFIG1, _DEBUG_OFF & _PLL_EN & _BORV_2_5 & _BOR_ON & _CP_OFF & _MCLRE_OFF & _PWRT_EN & _WDT_OFF & _INTOSCIO
@ __config _CONFIG2, _VCAP_RA0


Now looks like:


#CONFIG
__config _CONFIG1, _DEBUG_OFF & _PLL_EN & _BORV_2_5 & _BOR_ON & _CP_OFF & _MCLRE_OFF & _PWRT_EN & _WDT_OFF & _INTOSCIO
__config _CONFIG2, _VCAP_RA0
#endCONFIG



Then I set up the interrupt. Here's my OLD code for PBP2.6:


'-----Set up Interrrupts
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler TMR1GATE_INT, _CheckCount, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM

@ INT_ENABLE TMR1GATE_INT ; enable Timer 2 interrupts



And the NEW code for PBP3:


'-----Set up Interrrupts
#CONFIG
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler TMR1GATE_INT, _CheckCount, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
#ENDCONFIG

#CONFIG
INT_ENABLE TMR1GATE_INT ; enable Timer 1 interrupts
#ENDCONFIG


At the end of my interrupt handler routine I had this:


@ INT_RETURN


Which has been changed to this:


#CONFIG
INT_RETURN
#ENDCONFIG



That'all the ASM there is.

I clearly haven't done it right... could someone point me in the right direction?

Thanks!

Darrel Taylor
- 17th November 2011, 21:55
DT_INTS in not part of the device configuration.
Don't put #CONFIG/#ENDCONFIG around them. Put it back to ASM/ENDASM.

And watch the indentation. ASM is sensitive to that.

Byte_Butcher
- 18th November 2011, 00:13
Thanks Darrel!
I knew I'd done something stupid and that was it!

Welll... part of it.
It did indeed get rid of those errors, but it brought up some fresh ones.

6123

I'm clearly still not getting it right. (I seem to have lost the "embarrassed" smilie, but consider it Inserted Here.)

Here's the code again:


ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler TMR1GATE_INT, _CheckCount, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM

@ INT_ENABLE TMR1GE ; enable Timer 2 interrupts


Thanks much

Darrel Taylor
- 18th November 2011, 01:01
@ INT_ENABLE TMR1GATE_INT ; enable Timer 1 gate interrupts

Byte_Butcher
- 18th November 2011, 01:17
I'm sorry Darrel, I'm getting to where I can't even cut & paste the right code anymore.
I think I need to step away from the keyboard and go make some cookies or something instead.

THIS gives the errors shown in my last post.



'-----Set up Interrrupts
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler TMR1GATE_INT, _CheckCount, PBP, yes
endm
INT_CREATE ; Creates the interrupt process
ENDASM

@ INT_ENABLE TMR1GATE_INT ; enable Timer 1 interrupts

Darrel Taylor
- 18th November 2011, 16:29
Sorry, since you said the 2.60 code worked, I just copied from that post.

But actually, it's ... T1GATE_INT

Byte_Butcher
- 24th November 2011, 16:46
Hi Darrel,

Thanks for your help. I'm sorry I haven't followed through with this yet.

I discovered wet carpet in a spare bedroom and traced it back to a leak in the bathroom.
Rotten floor, ruined carpet, damaged wall, the whole works. :(
Major repairs underway and I don't know when I'll have time for PIC games again...

But I *really* appreciate all your help and I hope you and your family are having the best thanksgiving ever this year!



Steve