ver CAN
ikarashiMDC.cpp
- Committer:
- tknara
- Date:
- 2018-11-27
- Revision:
- 14:b1b58b74dd4c
- Parent:
- 13:ea34af94e90c
File content as of revision 14:b1b58b74dd4c:
#include "mbed.h" #include "ikarashiMDC.h" ikarashiMDC::ikarashiMDC(DigitalOut* serialcontrol,uint8_t taddr,uint8_t tmotorNum,bool tmode,Serial *tserial) { serialControl = serialcontrol; serialControl->write(true); serial = tserial; addr = taddr; motorNum = tmotorNum; mode = tmode; braking = true; } ikarashiMDC::ikarashiMDC(uint8_t taddr,uint8_t tmotorNum,bool tmode,CAN *can) { can_driver = can; addr = taddr; motorNum = tmotorNum; mode = tmode; braking = true; } int ikarashiMDC::setSpeed(const double& speed) { uint8_t data[4],dataSpeed; //Limiter const double cropped_speed = std::min(1.0,std::max(-1.0,speed)); //dataspeed 0~253 neutaral 126 dataSpeed = ((cropped_speed+1.0)/2.0)*253; //printf("%d\n",dataSpeed); //set sending data //msg.data[0] = 255; //header msg.data[0] = (addr<<5) + motorNum + (mode<<4)+(braking<<3); //address msg.data[1] = dataSpeed; msg.data[2] = data[1]^data[2]; msg.id = 1; msg.len=3; can_driver->write(msg); //send data //for(int i=0; i<4; i++) { //serial->putc(data[i]); //} return 0; } void estop(Serial *serial) { for(int i = 0; i<3; i++) { serial->putc(255); } }