GPIO interrupt question in MSP430X of freeRTO

sch0bert wrote on Thursday, December 29, 2011:


This is my first time that I’m working with a RTOS so I’m not sure if what I’m doing is correct. I’m using a MSP430FG4618 and I want to comunicate with an ADS1194 analog converter but this chip has a DRDY port (Data Ready port) so I’m wondering how could I manage the interrupts becase the freeRTOS just handle 1 (Timer interrupt) as far as I know.

I’m planning to enable the uC port interrupts once that I’m inside this task and then disable it once that I have finished all but I think that if a timer interrupt occurs it will affect the system, isn’t it?

Just as a cultural information, the ADS1194 converter gives the information through SPI with 8 bits packages. I suppose to receive 6 packages in 1 cycle task. (so 6 DRDY ports interrupts will occur)

So any I idea how could I manage this constant interrupt that will be made by the interrupt port?

Best Regards,

rtel wrote on Tuesday, January 03, 2012:

FreeRTOS uses only a single interrupt itself (to generate the time base), but does not limit your use of any other interrupts.  It provides an API that allows tasks and interrupts to synchronise, and for data to be passed into and out of interrupts.  Take a look at the “Interrupt Service Routines” section of the documentation page for the port you are using, and the API reference for any function that ends in “FromISR”.  You must not use an API function that does not end in FromISR in an interrupt.

Also look at the demo application that comes for the port you are using.  Each demo has an example of at least one interrupt being used.  In the MSP430X case, take a look at the serial.c file to find examples.