dragonflight1 wrote on Thursday, November 07, 2013:
swissEmbeded
As in my response to Richard (not Richard Damon), my stuff did not change the semantics of the port, so it wouldn’t work differently.
Having said that I’m not sure why your changing the SR register caused things to fail (at least the way you described), the correct IPL would have been restored when you exited the interrupt.
You did say that the interrupt was not FreeRTOS API free, and that would cause bad things to happen it you went to (configKERNEL_INTERRUPT_PRIORITY+1) for the reasons in previous posts.
Richard Damon has brought up a point (nesting FreeRTOS calls) that I assumed worked because the PIC port instructions included instructions for changing configKERNEL_INTERRUPT_PRIORITY. I even … (more excuses)
He is at least half correct, there is a problem. I think I haven’t seen the problem because my interrupts don’t share queues, but …
Regardless, I wanted you to be very wary of using multiple interrupt levels (for now). I’m onto another project, but I need (well want) nested interrupts and I will figure it out - though it might not be tomorrow!.
I have started another thread about this and hopefully Richard Damon will be kind enough to lead me through the problems (and hopefully solutions)
mike