none

Fork of thread-example2 by William Marsh

Committer:
edwinkad
Date:
Thu Jan 18 17:25:58 2018 +0000
Revision:
1:82ceca58478b
Parent:
0:83abbbeb9a3d
lol

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WilliamMarshQMUL 0:83abbbeb9a3d 1 // Simple Example fo use of Threads on mbed OS 5
WilliamMarshQMUL 0:83abbbeb9a3d 2 // Only need to include mbed.h
WilliamMarshQMUL 0:83abbbeb9a3d 3
WilliamMarshQMUL 0:83abbbeb9a3d 4 #include "mbed.h"
WilliamMarshQMUL 0:83abbbeb9a3d 5
WilliamMarshQMUL 0:83abbbeb9a3d 6 // Variable for a second thread
WilliamMarshQMUL 0:83abbbeb9a3d 7 Thread thread;
edwinkad 1:82ceca58478b 8 volatile int speed;
WilliamMarshQMUL 0:83abbbeb9a3d 9
edwinkad 1:82ceca58478b 10 DigitalOut ledR(LED1); // Red LED
edwinkad 1:82ceca58478b 11 //DigitalOut ledG(LED2); // Green LED
edwinkad 1:82ceca58478b 12 //DigitalOut ledB(LED3); // Blue LED
edwinkad 1:82ceca58478b 13
edwinkad 1:82ceca58478b 14 Serial pc(USBTX, USBRX); // tx, rx
WilliamMarshQMUL 0:83abbbeb9a3d 15
WilliamMarshQMUL 0:83abbbeb9a3d 16 // This method is run in the second thread
edwinkad 1:82ceca58478b 17 void led_default() {
WilliamMarshQMUL 0:83abbbeb9a3d 18 while (true) {
edwinkad 1:82ceca58478b 19 Thread::wait(speed);
edwinkad 1:82ceca58478b 20 ledR = !ledR;
WilliamMarshQMUL 0:83abbbeb9a3d 21 }
WilliamMarshQMUL 0:83abbbeb9a3d 22 }
WilliamMarshQMUL 0:83abbbeb9a3d 23
WilliamMarshQMUL 0:83abbbeb9a3d 24 // This is the main thread
WilliamMarshQMUL 0:83abbbeb9a3d 25 int main (void) {
edwinkad 1:82ceca58478b 26 char c;
edwinkad 1:82ceca58478b 27 speed=250;
edwinkad 1:82ceca58478b 28 ledR=1;
edwinkad 1:82ceca58478b 29 thread.start(callback(led_default));
edwinkad 1:82ceca58478b 30 while(1) {
edwinkad 1:82ceca58478b 31 pc.printf("\npress f or s>");
edwinkad 1:82ceca58478b 32 //ledR_thread(speed);
edwinkad 1:82ceca58478b 33 c = pc.getc();
edwinkad 1:82ceca58478b 34 if (c=='f'){
edwinkad 1:82ceca58478b 35 speed-=10;
edwinkad 1:82ceca58478b 36 }else if(c=='s'){
edwinkad 1:82ceca58478b 37 speed+=10;
edwinkad 1:82ceca58478b 38 }
WilliamMarshQMUL 0:83abbbeb9a3d 39 // start the second thread
WilliamMarshQMUL 0:83abbbeb9a3d 40 }
WilliamMarshQMUL 0:83abbbeb9a3d 41 }
edwinkad 1:82ceca58478b 42