University of Plymouth - Stages 1, 2 and 3
/
Task611-mbedos-F429ZI
Thread example
main.cpp
- Committer:
- noutram
- Date:
- 2019-11-08
- Revision:
- 4:19bf8c7e9b56
- Parent:
- 3:4090b465745c
File content as of revision 4:19bf8c7e9b56:
#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); //There is a task to uncomment this ThisThread::sleep_for(5000); printf("Main is Awake\n"); //Should not happen when osWaitForever is used } }