thread pointers
Dependencies: TextLCD mbed-rtos mbed
Fork of myStopwatch_threads by
Revision 2:9386c6f541bd, committed 2014-10-03
- Comitter:
- jfields
- Date:
- Fri Oct 03 20:18:22 2014 +0000
- Parent:
- 1:38e744366b97
- Commit message:
- pointer threads!
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Oct 03 19:26:13 2014 +0000
+++ b/main.cpp Fri Oct 03 20:18:22 2014 +0000
@@ -1,42 +1,72 @@
#include "mbed.h"
#include "rtos.h"
#include "TextLCD.h"
-
+
TextLCD lcd(p15, p16, p17, p18, p19, p20, TextLCD::LCD16x2);
Serial pc (USBTX, USBRX);
DigitalOut myled(LED1);
-
+
// global vars
int mm [] = {0, 0};
int ss [] = {0, 0};
int MM [] = {0, 0};
-
+
// functions
void update_display(void const *args);
void update_mm(void const *args);
void update_ss(void const *args);
void update_MM(void const *args);
-
+
int main() {
Thread thread_display(update_display);
- Thread thread_mm(update_mm);
- Thread thread_ss(update_ss);
- Thread thread_MM(update_MM);
+ Thread * mmptr;
+ Thread * ssptr;
+ Thread * MMptr;
+
+ char input = 'z';
+ int run_status = 0;
- while (true) {
+ while(1) {
+
+ if ( input == 's') {
+ if (run_status==0) {
+ mmptr = new Thread(update_mm);
+ ssptr = new Thread(update_ss);
+ MMptr = new Thread(update_MM);
+ run_status = 1;
+ }
+ }
+ if ( input == 'p') {
+ if (run_status==1) {
+ delete mmptr;
+ delete ssptr;
+ delete MMptr;
+ run_status = 0;
+ }
+ }
+ if ( input == 'r') {
+ if (run_status == 0) {
+ mm[0] = mm[1] = 0;
+ ss[0] = ss[1] = 0;
+ MM[0] = MM[1] = 0;
+ }
+ }
+
+ input = pc.getc();
}
+
}
-
+
void update_display(void const *args) {
while (1) {
lcd.printf("%d%d:%d%d:%d%d\n\n", MM[1], MM[0],ss[1],ss[0],mm[1],mm[0]);
Thread::wait(10);
}
}
-
+
void update_mm(void const *args) {
while (1) {
Thread::wait(10);
@@ -51,7 +81,7 @@
}
}
}
-
+
void update_ss(void const *args) {
while (1) {
Thread::wait(1000);
@@ -66,7 +96,7 @@
}
}
}
-
+
void update_MM(void const *args) {
while (1) {
Thread::wait(60000);
@@ -81,3 +111,4 @@
}
}
}
+
\ No newline at end of file
