Basic funcitonality

Dependencies:   mbed mbed-rtos SevenSegmentSerial HC_SR04_Ultrasonic_Library

Revision:
10:a3796a403d28
Parent:
9:1d973bd9786c
Child:
11:1a6658a543e0
--- a/main.cpp	Fri Apr 30 14:21:29 2021 +0000
+++ b/main.cpp	Fri Apr 30 15:01:34 2021 +0000
@@ -25,7 +25,7 @@
 DigitalOut  rgbCtrl1(p8);
 DigitalOut  rgbCtrl2(p9);
 DigitalOut  rgbCtrl3(p10);
-SevenSegmentSerial mydisplay(UART_MODE, p28);
+SevenSegmentSerial ssd(UART_MODE, p28);
 
 #define     B4NOTE  500 //Hz
 #define     E5NOTE  659 //Hz
@@ -53,6 +53,7 @@
 void start_race()
 {
     // 3
+    ssd.setDigit(3,0);
     rgbRed = 1;
     speaker.period(1.0/B4NOTE);
     speaker =0.5;
@@ -61,18 +62,21 @@
     speaker = 0;
     Thread::wait(500);
     // 2
+    ssd.setDigit(2,0);
     speaker =0.5;
     rgbCtrl2 = 1;
     Thread::wait(500);
     speaker = 0;
     Thread::wait(500);
     // 1
+    ssd.setDigit(1,0);
     speaker =0.5;
     rgbCtrl3 = 1;
     Thread::wait(500);
     speaker = 0;
     Thread::wait(500);
     // GO!
+    ssd.write("GOOO");
     rgbRed = 0;
     rgbGreen = 1;
     start_done = 1;
@@ -194,6 +198,9 @@
 
 int main()
 {
+    // Clear SSD
+    ssd.clear();
+
     //sonar initialization
     sonar0.startUpdates();
     sonar1.startUpdates();
@@ -217,29 +224,32 @@
 
     //false start detect
     while(!start_done) {
+        sonar0.checkDistance();
         if (current_lap) {
-            rgbCtrl1 = rgbCtrl2 = rgbCtrl3 = 0;
-            led0 = led1 = led2 = 0;
-            rgbRed = 1;
-            rgbGreen = 0;
-            bool other = true;
-            speaker.period(1/E5NOTE);
-            while (1) {
+            thread2.terminate();
+            speaker = 0.5;
+            speaker.period(1/B4NOTE);
+            while(1) {
+                speaker = 0;
+                rgbCtrl1 = rgbCtrl2 = rgbCtrl3 = 0;
+                led0 = led1 = led2 = 0;
+                rgbRed = 0;
+                rgbGreen = 0;
+                led0 = !led0;
+                led1 = !led1;
+                led2 = !led2;
+                Thread::wait(200);
+                rgbRed = 1;
                 rgbCtrl1 = !rgbCtrl1;
                 rgbCtrl2 = !rgbCtrl2;
                 rgbCtrl3 = !rgbCtrl3;
                 led0 = !led0;
                 led1 = !led1;
                 led2 = !led2;
-                speaker = other ? 0.5 : 0.0;
-                other = !other;
-                if (pc.getc() == 'R') {
-                    mbed_reset();
-                }
-                Thread::wait(50);
+                Thread::wait(200);
+                //wait for start char from Pi
             }
         }
-        Thread::wait(50);
     }
 
     while(1) {