Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
5 years, 6 months ago.
AnalogIn read within a Callback
I am trying to create a class that takes care of polling an analog in pin, and stores the results in an array. I am trying to do this with a ticker and callback. The idea is that the main loop can interrogate the data that has been collected in this class. If I use analogin.read in my callback I get a Mutex Lock error It works fine if I am using a digitalin.read What is the correct way for me to set up collecting sample readings from analogin outside the main loop?
1 Answer
5 years, 6 months ago.
In general do not put any code in an interrupt callback function or as little as possible.
In that callback function, simply set a flag and act on that flag in your main program.
I use something very basic like this to sense an operator switch input:
void callback() { while(SW1==1); // wait for release of switch (this is blocking) IRQ=1; // variable IRQ is set to 1, test for this in main program. }
This example is not be thread based RTOS friendly.