Jaydeep Shah
/
5) Thread_Usage_RTOS
main.cpp@0:b50ca10406fb, 2020-07-11 (annotated)
- Committer:
- radhey04ec
- Date:
- Sat Jul 11 06:52:27 2020 +0000
- Revision:
- 0:b50ca10406fb
Thread basic usages NUCLEO-64; Thread management / creation /control; Jaydeep shah;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
radhey04ec | 0:b50ca10406fb | 1 | //THREAD USAGE EXAMPLE |
radhey04ec | 0:b50ca10406fb | 2 | //JAYDEEP SHAH |
radhey04ec | 0:b50ca10406fb | 3 | |
radhey04ec | 0:b50ca10406fb | 4 | //LIBRARY REQUIREMENTS |
radhey04ec | 0:b50ca10406fb | 5 | |
radhey04ec | 0:b50ca10406fb | 6 | #include "mbed.h" |
radhey04ec | 0:b50ca10406fb | 7 | #include "rtos.h" //RTOS LIBRAY FOR MAKING RTOS APK |
radhey04ec | 0:b50ca10406fb | 8 | |
radhey04ec | 0:b50ca10406fb | 9 | //DECLARE GLOBAL PINS & OBJECT SO ANY THREAD FUNCTION CAN USE |
radhey04ec | 0:b50ca10406fb | 10 | DigitalOut led_GREEN(PC_4); //GREEN LED CONNECTED WITH PC_4 PIN OF NUCLEO |
radhey04ec | 0:b50ca10406fb | 11 | DigitalOut led_RED(PB_13); //RED LED CONNECTED WITH PB_13 PIN OF NUCLEO |
radhey04ec | 0:b50ca10406fb | 12 | |
radhey04ec | 0:b50ca10406fb | 13 | //CREATE TWO THREAD |
radhey04ec | 0:b50ca10406fb | 14 | Thread T1,T2; |
radhey04ec | 0:b50ca10406fb | 15 | |
radhey04ec | 0:b50ca10406fb | 16 | void LEDG_thread() //THREAD ONE FUNCTION |
radhey04ec | 0:b50ca10406fb | 17 | { |
radhey04ec | 0:b50ca10406fb | 18 | while(true) //This statement require to run thread continue |
radhey04ec | 0:b50ca10406fb | 19 | { |
radhey04ec | 0:b50ca10406fb | 20 | led_GREEN = ! led_GREEN; |
radhey04ec | 0:b50ca10406fb | 21 | ThisThread::sleep_for(500); //THREAD SLEEP FOR 0.5 SEC |
radhey04ec | 0:b50ca10406fb | 22 | } |
radhey04ec | 0:b50ca10406fb | 23 | } |
radhey04ec | 0:b50ca10406fb | 24 | |
radhey04ec | 0:b50ca10406fb | 25 | void LEDR_thread() //THREAD 2 FUNCTION |
radhey04ec | 0:b50ca10406fb | 26 | { |
radhey04ec | 0:b50ca10406fb | 27 | while(true) //This statement require to run thread continue |
radhey04ec | 0:b50ca10406fb | 28 | { |
radhey04ec | 0:b50ca10406fb | 29 | led_RED = ! led_RED; |
radhey04ec | 0:b50ca10406fb | 30 | ThisThread::sleep_for(1000); // THREAD SLEEP FOR 1SEC |
radhey04ec | 0:b50ca10406fb | 31 | } |
radhey04ec | 0:b50ca10406fb | 32 | } |
radhey04ec | 0:b50ca10406fb | 33 | |
radhey04ec | 0:b50ca10406fb | 34 | |
radhey04ec | 0:b50ca10406fb | 35 | int main() |
radhey04ec | 0:b50ca10406fb | 36 | { |
radhey04ec | 0:b50ca10406fb | 37 | |
radhey04ec | 0:b50ca10406fb | 38 | |
radhey04ec | 0:b50ca10406fb | 39 | T1.start(LEDR_thread);// START THIS THREAD |
radhey04ec | 0:b50ca10406fb | 40 | T2.start(LEDG_thread); //START THIS THREAD ALSO |
radhey04ec | 0:b50ca10406fb | 41 | |
radhey04ec | 0:b50ca10406fb | 42 | while (true) { |
radhey04ec | 0:b50ca10406fb | 43 | |
radhey04ec | 0:b50ca10406fb | 44 | |
radhey04ec | 0:b50ca10406fb | 45 | } |
radhey04ec | 0:b50ca10406fb | 46 | } |