This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
I am running CCS 5.2.1.00018, device is 28335.
Is there any reason it is so common to PIEACK the whole group?
What if you PIEACK a group and there are 2 or more INTs of the same group, ie, TINT0 and ADCINT, both in group1 - it doesn't seem that unlikely?!
Do you also think it would be a better practice to PIEACK just the INTx.x intended? And is there any way to do that, individually?
Regards
Thiago,
The reality is, it does not matter whether you 'ack all PIE groups, or just the group being serviced. The PIE knows. The thing to keep in mind is the 'acking the PIE does not clear any pending interrupts. It just tells the PIE that you are servicing the highest priority pending and enabled PIE interrupt, provided that interrupt is in one of the groups you 'ack.
If there is more than one interrupt pending on a PIE group and you are servicing the first of these interrupts, 'acking the group tells the PIE you are servicing the first of these interrupts. The PIE knows which interrupt it sent in a request for. So, when the PIE gets the 'ack is knows it can send the next interrupt in that group.
Similarly, if more than one group has a pending interrupt and you are servicing one of the groups, the PIE knows which group is being serviced (you are servicing the highest priority pending group). 'Acking the other groups does nothing.
I have alway's ack'd just the group I am servicing in the ISR. That's the way TI example code did it when the C28x first came out, and I have never changed. But you could just as easily 'ack all the groups in every ISR. Again, the PIE knows.
Regards,
- David