GPIO Interrupts


#1

Hi Folks,
I’m looking at the possibility of using a GPIO input to detect regular pulses. Polling would take too much resources, so I want to use interrupts.
AT+WIPC to set the pin up as an interrupt.
adl_ioEventSubscribe to wait on GPIO triggered events.
The ADL interface for this (adl_ioxxxxx), talks about Events being created, it also takes about polling speed - PollingTimerType. Does it just poll in the firmware? It says you can miss the parameter out, is it a straight interrupt then? I guess you can use polling if the pin does not have interrupt capability.
If this is the case are the chances of using this to detect pulses highly unlikely? I anticipate the GSM tasks will take priority most of the time so there would be frequent lost pulses, whether its polling or interrupting.
Can any users out there share some experience on this?


#2

What frequency are your regular pulses?

Have a look at the TCU service in the ADL user guide for another option.


#3

Ideally up to 20 a second, but I doubt its possible.
Will check out the TCU interface. THanks.


#4

Look at the “IRQ Measure” and “Signal Replica” examples…


#5

Thanks awneil


#6

20Hz shouldn’t be too much of a problem (50ms per pulse). I believe the polling runs on the 18.5ms tick (might be wrong), so you’d be sampling at more than double your input frequency. TCU can easily handle that rate.


#7

Thanks Tom. Pleased to hear that. I’ll have a look at the examples and give it a test.


#8

OK, I’m using the irq_measure example code bits and it seems to be working. :slight_smile:

Is there a way to tell if my interrupts overrun, i.e. if another interrupt comes in before I have been able to process the first?