ikarashiMDCslaveの改良(?)版 スピード制御の分解能が2byte

Dependencies:   mbed SoftPWM MotorSMLAP

Revision:
10:5f932239b8a5
Parent:
9:1579e5cfa499
Child:
11:3ef351087c94
--- a/main.cpp	Sat Nov 11 00:52:25 2017 +0000
+++ b/main.cpp	Fri Aug 24 10:25:58 2018 +0900
@@ -1,6 +1,7 @@
 #include "mbed.h"
 #include "motorsmlap.h"
 #include "MDC3_0pinConfig.h"
+#include "SoftPWM.h"
 #include <vector>
 #define TIMEOUT 0.5
 using namespace pinConfig;
@@ -24,7 +25,7 @@
 bool estop =false,doubleHeader = false;
 BusIn addr(DIP_0,DIP_1,DIP_2);
 //uint8_t addr = 2;
-DigitalOut beep(BUZER);
+SoftPWM beep(BUZER);
 bool brakeing[4] = {false};
 
 int mode[4] = {0};
@@ -41,7 +42,6 @@
 
 void callback()
 {
-    debugLED0 != debugLED0;
     buf.push_back(rs485.getc());
 }
 
@@ -75,27 +75,35 @@
 {
     for(int i= 0; i< 4; i++)
         motor[i].setMotorSpeed(0);
-    beep = true;
-    wait(1);
-    beep = false;
-    wait(0.5);
-    for(int i = 0; i<=addr; i++) {
-        beep = true;
-        wait(0.1);
-        beep = false;
-        wait(0.1);
+    beep.period(1.0 / 2000.0);
+    beep = 0.6;
+    wait(0.1);
+    beep.period(1.0 / 4000.0);
+    beep = 0.6;
+    wait(0.1);
+    beep.period(1.0 / 6000.0);
+    beep = 0.6;
+    wait(0.1);
+    beep = 0.0;
+    wait(0.1);
+    beep.period(1.0 / 2000.0);
+    for(int i = 0; i<addr; i++) {
+        beep = 0.6;
+        wait(0.075);
+        beep = 0.0;
+        wait(0.075);
     } // beep addr times
 
     unsigned char tmp[3] = {0};
     addrChecked=false,headerRecieved=false;
     //motor[0].setMotorSpeed(0);
-    rs485.baud(38400);
+    rs485.baud(115200);
     serial.baud(115200);
     addr.mode(PullUp);
     RSControl = 0;
     rs485.putc((1<<addr));
     rs485.attach(&callback);
-    beep = false;
+    beep = 0.0;
     while(1) {
         debugLED = addr;
         if(buf.size() > 4) {
@@ -105,13 +113,15 @@
                 tmp[2] = buf[3];
                 processData(tmp);
                 buf.erase(buf.begin(),buf.begin()+3);
+                debugLED0 = !debugLED0;
             } else {
                 buf.erase(buf.begin());
+                debugLED0 = false;
             }
         }
         if(estop)
             forceStop();
         beep = estop;
-        wait(0.1);
+        //wait(0.1);
     }
 }