Instead of using an interrupt to read a serial message, a thread is created within the interrupt that reads serial data coming in. Original project for LPC1768.
main.cpp
- Committer:
- Ritzerk
- Date:
- 2019-03-05
- Revision:
- 0:f28b116a2be0
- Child:
- 1:5438da9e6654
File content as of revision 0:f28b116a2be0:
#include "mbed.h"
InterruptIn button(p14);
Thread ISRthread(osPriorityAboveNormal);
osThreadId ISRthreadId;
DigitalOut myled(LED1);
DigitalOut myled3(LED3);
void newInput();
void ISR_thread();
int main() {
ISRthread.start(callback(ISR_thread));
button.rise(&newInput); //interrupt to catch input
while(1) {
myled = 1;
osDelay(1000);
myled = 0;
osDelay(1000);
}
}
void newInput() {
osSignalSet(ISRthreadId,0x01);
}
void ISR_thread() {
ISRthreadId = osThreadGetId();
for(;;) {
osSignalWait(0x01, osWaitForever);
myled3 = 1;
osDelay(500);
myled3 = 0;
}
}