Thread example
main.cpp
- Committer:
- noutram
- Date:
- 2019-09-20
- Revision:
- 3:4090b465745c
- Parent:
- 2:47c9c24b49fc
- Child:
- 4:19bf8c7e9b56
File content as of revision 3:4090b465745c:
#include "mbed.h"
//Function declarations
void Function1();
void Function2();
//I/O
DigitalOut onBoardLED(LED1);
DigitalOut redLED(PE_15);
DigitalOut yellowLED(PB_10);
DigitalOut greenLED(PB_11);
DigitalIn onBoardSwitch(USER_BUTTON);
DigitalIn SW1(PE_12);
DigitalIn SW2(PE_14);
//Create thread objects
Thread t1, t2;
//Thread
void Function1()
{
while (true) {
redLED = !redLED;
ThisThread::sleep_for(2000);
}
}
//Thread
void Function2()
{
while (true) {
yellowLED = !yellowLED;
ThisThread::sleep_for(1000);
}
}
//Main thread
int main() {
//Initial state
redLED = 0;
yellowLED = 0;
greenLED = 0;
//Create and run threads (C function pointers)
t1.start(Function1);
t2.start(Function2);
//Main thread loop
while(1) {
//ThisThread::sleep_for(osWaitForever);
ThisThread::sleep_for(5000);
printf("Main is Awake\n"); //Should not happen when osWaitForever is used
}
}