CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

pic with 7 external interrupts

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
overmindx



Joined: 06 Oct 2008
Posts: 43

View user's profile Send private message

pic with 7 external interrupts
PostPosted: Thu Mar 12, 2015 11:34 pm     Reply with quote

hi,
has anybody here used a pic with 7 external interrupts? if so, can i have the model of the chip. cant seem to find it anywhere.

thanks

bryan
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Fri Mar 13, 2015 12:41 am     Reply with quote

What about the 16F1847 ? It has one external interrupt, INT_EXT.
It also has eight interrupt-on-change pins, RB0 to RB7. Each one is
individually programmable for interrupt or not, and for rising edge or
falling edge.

I can find the PICs that have this feature (at least for 16F and 18F)
by using a text search program on the Devices directory and searching
for this: INT_RB4_L2H

I get these series of PICs that have it:

16F14xx
16F15xx
16F16xx
16F17xx
16F18xx
16F19xx

The 16F16xx and 16F17xx series (and LF versions) have IOC pins on
many other ports, not just PortB.
Ttelmah



Joined: 11 Mar 2010
Posts: 19253

View user's profile Send private message

PostPosted: Fri Mar 13, 2015 1:49 am     Reply with quote

As a 'caveat' to this, when using these interrupts you have to clear the specific IOC bit yourself. A search here will find posts about how to do this.

Then as a second comment, for more 'up market' chips, the PIC24's for example, have large numbers of pins programmable for interrupt on change (often up to perhaps 24 pins).

Then remember that there is nothing to stop you attaching an external interrupt controller.

Then, 'be sure' that you really need so many interrupts. There are a lot of posts here for example, from people wanting to use interrupts as a way of scanning keypads, when these are not really the ideal solution to doing this. Keypad's as a source, are 'noisy', and do not need a 'uSec' deterministic response. If you look at the code used in things like PC keyboards, these always do the scanning using a timer 'tick', rather than interrupts. Using interrupts for this job, actually creates more problems than it solves, so make sure that your problem really does need to use interrupts.
asmboy



Joined: 20 Nov 2007
Posts: 2128
Location: albany ny

View user's profile Send private message AIM Address

PostPosted: Fri Mar 13, 2015 7:52 am     Reply with quote

one thing i learned about interrupts:
Too many enabled interrupts can negatively influence time domain determinism in your program.
Sometimes "too many" can even be ONE. Very Happy

Basically, try by design to never use an int where simple polling will do the trick.

an example would be a long term time base counter for 1 second rollovers
using an 18F timer 0.

Though you'd be tempted to use an INT, i typically just poll/reset the
overflow flag, and increment a 32 bit var as part of a master WHILE() loop in MAIN().

this is especially important if you have any time critical routines in your foreground code.
That lets you avoid disabling and re-enabling master INTS when executing such items.
ELCouz



Joined: 18 Jul 2007
Posts: 427
Location: Montreal,Quebec

View user's profile Send private message

PostPosted: Fri Mar 13, 2015 10:34 am     Reply with quote

In the other hand...

This monster PIC24EP512GU814 144 pins have a total of 16 Input capture modules.... (can be used as an external interrupt!!)

The cheapest is the PIC24FJ64GA106 with 9 IC/external interrupt
_________________
Regards,
Laurent

-----------
Here's my first visual theme for the CCS C Compiler. Enjoy!
Ttelmah



Joined: 11 Mar 2010
Posts: 19253

View user's profile Send private message

PostPosted: Fri Mar 13, 2015 3:23 pm     Reply with quote

You don't need to use the input capture modules.

As I said, the PIC24's support programmable interrupt on change.

Small chips like the PIC24FJ32MC102, have CNx programmable on just about every I/O pin. Single interrupt, but the corresponding CNx bit gets set, so you can tell exactly which pin triggered it.
Arizona Chris



Joined: 20 Dec 2014
Posts: 69
Location: Arizona

View user's profile Send private message Visit poster's website

Interrupts
PostPosted: Sat Mar 14, 2015 8:32 am     Reply with quote

Id like to add that by adding some external OR gates, you can use one interrupt and simply OR all of the requests together into one. Remember that a hardware solution is far easier to trouble shoot than a software one!

Chris
ELCouz



Joined: 18 Jul 2007
Posts: 427
Location: Montreal,Quebec

View user's profile Send private message

Re: Interrupts
PostPosted: Sat Mar 14, 2015 8:59 am     Reply with quote

Arizona Chris wrote:
Id like to add that by adding some external OR gates, you can use one interrupt and simply OR all of the requests together into one. Remember that a hardware solution is far easier to trouble shoot than a software one!

Chris


Indeed but the whole point of a uC is to cut down on the discrete components thus shifting all the hardware complexity and cost to a software problem...

Smile
_________________
Regards,
Laurent

-----------
Here's my first visual theme for the CCS C Compiler. Enjoy!
Ttelmah



Joined: 11 Mar 2010
Posts: 19253

View user's profile Send private message

PostPosted: Sat Mar 14, 2015 10:28 am     Reply with quote

The problem with the OR gate approach, is you still need the signals connected to the processor, if you are going to know which input has triggered the event....
If you didn't need this, then saving the pins might well be worthwhile. Though the key ability of the processor is to do a lot of jobs, often the limiting factor is the number of pins available, and using a small amount of external logic to save pins is in many cases the best solution.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group