Basic funcitonality
Dependencies: mbed mbed-rtos SevenSegmentSerial HC_SR04_Ultrasonic_Library
Diff: main.cpp
- 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) {