View Single Post
  #4   Spotlight this post!  
Unread 15-12-2003, 07:32
Unsung FIRST Hero
Mike Betts Mike Betts is offline
Electrical Engineer
no team
Team Role: Engineer
 
Join Date: Dec 2001
Rookie Year: 1995
Location: Homosassa, FL
Posts: 1,442
Mike Betts has a reputation beyond reputeMike Betts has a reputation beyond reputeMike Betts has a reputation beyond reputeMike Betts has a reputation beyond reputeMike Betts has a reputation beyond reputeMike Betts has a reputation beyond reputeMike Betts has a reputation beyond reputeMike Betts has a reputation beyond reputeMike Betts has a reputation beyond reputeMike Betts has a reputation beyond reputeMike Betts has a reputation beyond repute
Re: Problem with interrupts on the PIC

Jim,

Thank you. Your input is basically the same as IFI gave me... My bad for not reading the C compiler manual more closely.

One of the issues is that your pragma fragment, the default code and the Timers White Paper is that all use:

#pragma interrupt InterruptHandlerLow

However, section 2.9.2 of "MPLAB® C18 C COMPILER USER’S GUIDE" indicates that

#pragma interruptlow InterruptHandlerLow

is the correct pragma to use. Otherwise, both high and low will use the same shadow registers and a high priority interrupt will eventually interrupt the low priority and trash your context.

Once again, thanks for your help.

Mike


Larry,

In addition to my comment above, please be sure that you read section 2.9.2 in it's entirety. Specifically, I quote:

"If an interrupt service routine calls another function, the normal functions' temporary data section (which is named .tmpdata) should be saved using a save=section(".tmpdata") qualifier on the interrupt pragma command."

In your case, the pragma in User_Routines_Fast.c needs to be:

#pragma interruptlow InterruptHandlerLow save=section(".tmpdata")

I hope this fixes your glitching problem. It did for me...
__________________
Mike Betts

Alumnus, Team 3518, Panthrobots, 2011
Alumnus, Team 177, Bobcat Robotics, 1995 - 2010
LRI, Connecticut Regional, 2007-2010
LRI, WPI Regional, 2009 - 2010
RI, South Florida Regional, 2012 - 2013

As easy as 355/113...