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?

UserRevisionLine numberNew 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 }