Example using semaphore in ISR
Dependencies: IHM_V2
Purpose: Simple application example with 1 thread triggered by a interrupt service routine (ISR) through a semaphore. Target: L432KC / Nboard (from IUT-Cachan) Tested: YES (2019-01-09) Author: Jacques-Olivier Klein - IUT de CACHAN Date: 2018-02-10 rev. 2019-01-09 OS_STACK_SIZE=4096 Libraries: mbed-os rev5345:c966348(03jan2019) + IHMV2 (from IUT-Cachan) rev6:ad91067
Diff: main.cpp
- Revision:
- 28:be81ea276c3a
- Parent:
- 27:edb6c6685907
--- a/main.cpp Sat Feb 10 20:57:06 2018 +0000 +++ b/main.cpp Wed Jan 09 12:26:00 2019 +0000 @@ -1,6 +1,6 @@ -// Title : mbed-os-irq-semaphore +// Title : mbed-os-isr-semaphore // Author: Jacques-Olivier Klein - IUT de CACHAN -// Date: 2018-02-10 +// Date: 2018-02-10 - rev. 2019-01-06 #include "mbed.h" #include "IHM.h" @@ -15,22 +15,22 @@ void thread_Semaphore(); void isrBP0 (); -Thread thread_waiting_for_semaphore (osPriorityNormal,DEFAULT_STACK_SIZE );; +Thread thread_waiting_for_semaphore (osPriorityNormal,OS_STACK_SIZE );; Semaphore mysemaphore(0); int main(void) { ihm.LCD_clear(); ihm.LCD_printf("irq-semaphore-%s %s",__DATE__,__TIME__); printf("mbed-os-irq-semaphore-%s %s\n\r",__DATE__,__TIME__); - printf("DEFAULT_STACK_SIZE:%d\n\r", DEFAULT_STACK_SIZE); + printf("DEFAULT_STACK_SIZE:%d\n\r", OS_STACK_SIZE); BP0_Interrupt.mode(PullUp); thread_waiting_for_semaphore.start(thread_Semaphore); BP0_Interrupt.fall(&isrBP0); while(1){ L0=!L0; - printf("* [pid-%d]Main \n\r",Thread::gettid()); - Thread::wait(200); + printf("* [pid-%d]Main \n\r",osThreadGetId()); + wait(0.200); } } @@ -42,7 +42,7 @@ while(1){ mysemaphore.wait(); L1=!L1; - printf(" * [pid-%d]Main \n\r",Thread::gettid()); + printf(" * [pid-%d]Semaphore \n\r",osThreadGetId()); } } \ No newline at end of file