ikarashiMDCの2byteバージョン
Dependents: NHK2019_mae_v6 NHK2019_main_v6 NHK2019_usiro_v6 2019BSyudo ... more
Diff: ikarashiMDC.cpp
- Revision:
- 14:d5ace3e9a620
- Parent:
- 13:ea34af94e90c
- Child:
- 15:3ae22f7861b4
--- a/ikarashiMDC.cpp Sat Nov 11 10:50:30 2017 +0000 +++ b/ikarashiMDC.cpp Fri Aug 30 06:42:26 2019 +0000 @@ -1,10 +1,8 @@ #include "ikarashiMDC.h" -ikarashiMDC::ikarashiMDC(DigitalOut* serialcontrol,uint8_t taddr,uint8_t tmotorNum,bool tmode,Serial *tserial) +ikarashiMDC::ikarashiMDC(uint8_t taddr,uint8_t tmotorNum,bool tmode,Serial *tserial) { - serialControl = serialcontrol; - serialControl->write(true); serial = tserial; addr = taddr; motorNum = tmotorNum; @@ -14,19 +12,20 @@ int ikarashiMDC::setSpeed(const double& speed) { - uint8_t data[4],dataSpeed; + uint8_t data[5],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; + dataSpeed = ((cropped_speed+1.0)/2.0)*0xffff; //printf("%d\n",dataSpeed); //set sending data data[0] = 255; //header data[1] = (addr<<5) + motorNum + (mode<<4)+(braking<<3); //address - data[2] = dataSpeed; - data[3] = data[1]^data[2]; + data[2] = dataSpeed & 0xff; + data[3] = dataSpeed >> 8; + data[4] = data[1]^data[2]^data[3]; //send data - for(int i=0; i<4; i++) { + for(int i=0; i<5; i++) { serial->putc(data[i]); } return 0;