Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.
If you don't enable prioritised interrupts (IPEN=0, the default) then all interrupts go to the vector at 0x08. If you enable priorities (IPEN=1) then any interrupts with its priority bit set will go to 0x08 but all other interrupts will go to 0x18. High priority interrupts will interrupt a low priority ISR.
Check any 18 series data sheet for a better explanation.
Lighty, basically yes. During the normal operation of the microcontroller, if the interrupt is enabled and interrupt has occured, the interrupt will be serviced, no matter where is it. Interrupt can also be used to wake up the microcontroller from sleep.
My question about interrupts : when u have many interrupts with same priority, if an interrupt occurs during servicing another one, will the PICmiro continue the current one and then service the other ?
On a 14bit core (16F, some 12F) an interrupt will turn off the GIE (Global Interrupt Enable) bit so no other interrupts will be serviced till a RETFIE (automatically sets the GIE bit)
Interrupts flags set while GIE was disabled will then be serviced.
Now I'm rusty on the 18F as they have two levels. I'm not sure if a high level interrupt will be called while servicing a low level one.
Yeh what are you doing which requries so many interrupts?
In PIC18 there are only 2 types of interrupt priorities. As far as the prioritizing individual interrupts is concerned then it depends on the sequence in which you check the flags.When an interrupt occurs then it just gose to the corresponding vector address for High and Low priority interrupt respectively.