ikarashiMDCslaveの改良(?)版 スピード制御の分解能が2byte
Dependencies: mbed SoftPWM MotorSMLAP
Diff: main.cpp
- 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); } }