Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed SoftPWM MotorSMLAP
main.cpp
- Committer:
- WAT34
- Date:
- 2017-08-12
- Revision:
- 2:de85eb142f32
- Parent:
- 0:4791d1cb39f8
- Child:
- 3:22c5eb74817f
File content as of revision 2:de85eb142f32:
#include "mbed.h" #include "motorsmlap.h" motorSmLap motor[]={ motorSmLap(PB_0,PB_1) }; Serial serial(PB_10,PB_11); DigitalOut serialControl(PA_8); Timeout timeout; uint8_t pointedMotor; bool addrChecked=false,headerRecieved=false,doubleHeader = false,estop =false; BusIn addr(PB_4,PB_5,PB_6); DigitalOut beep(PB_7); int mode = SM; void forceStop() { for(int i = 0;i < 4; i++) { motor[i].setMotorSpeed(0); } } void callback(){ uint8_t data; data = serial.getc(); if(data == 255) //header { if(headerRecieved) doubleHeader =true; else if (doubleHeader) { estop = true; return; } addrChecked = false; headerRecieved = true; }else if(headerRecieved && !addrChecked) { doubleHeader=false; if((data>>4) == addr.read()) { addrChecked =true; pointedMotor = data%4; serialControl = 1; serial.putc(addr.read()); serialControl = 0; } }else if(headerRecieved && addrChecked && !estop) { doubleHeader = false; motor[pointedMotor].setMotorSpeed(data/126.0-1.0); addrChecked = false; headerRecieved = false; timeout.attach(&forceStop,0.1); } } int main() { beep = 0; serialControl = 0; serial.attach(&callback); while(1) { if(estop) forceStop(); beep = estop; } }