ikarashiMDCの2byteバージョン

Dependents:   NHK2019_mae_v6 NHK2019_main_v6 NHK2019_usiro_v6 2019BSyudo ... more

Committer:
skouki
Date:
Mon Sep 02 07:23:05 2019 +0000
Revision:
15:3ae22f7861b4
Parent:
14:d5ace3e9a620
Child:
16:f1b2b34d09b3

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WAT34 0:314f2bed3958 1 #include "ikarashiMDC.h"
WAT34 0:314f2bed3958 2
WAT34 0:314f2bed3958 3
skouki 14:d5ace3e9a620 4 ikarashiMDC::ikarashiMDC(uint8_t taddr,uint8_t tmotorNum,bool tmode,Serial *tserial)
WAT34 0:314f2bed3958 5 {
WAT34 2:75153205d6e8 6 serial = tserial;
WAT34 2:75153205d6e8 7 addr = taddr;
WAT34 2:75153205d6e8 8 motorNum = tmotorNum;
WAT34 2:75153205d6e8 9 mode = tmode;
WAT34 9:12ea2a3883bb 10 braking = true;
WAT34 0:314f2bed3958 11 }
WAT34 0:314f2bed3958 12
WAT34 2:75153205d6e8 13 int ikarashiMDC::setSpeed(const double& speed)
WAT34 0:314f2bed3958 14 {
skouki 15:3ae22f7861b4 15 uint8_t data[6];
WAT34 2:75153205d6e8 16 //Limiter
WAT34 13:ea34af94e90c 17 const double cropped_speed = std::min(1.0,std::max(-1.0,speed));
WAT34 2:75153205d6e8 18 //dataspeed 0~253 neutaral 126
skouki 15:3ae22f7861b4 19 uint16_t dataSpeed = ((cropped_speed+1.0)/2.0)*0xffff + 1;
WAT34 2:75153205d6e8 20 //printf("%d\n",dataSpeed);
WAT34 2:75153205d6e8 21 //set sending data
WAT34 2:75153205d6e8 22 data[0] = 255; //header
skouki 15:3ae22f7861b4 23 data[1] = 254;
skouki 15:3ae22f7861b4 24 data[2] = (addr<<5) + motorNum + (mode<<4)+(braking<<3); //address
skouki 15:3ae22f7861b4 25 data[3] = dataSpeed % 256;
skouki 15:3ae22f7861b4 26 data[4] = ((dataSpeed >> 8) & 0xff);
skouki 15:3ae22f7861b4 27 data[5] = data[2]^data[3]^data[4];
skouki 15:3ae22f7861b4 28 if((data[3]==255)&&(data[4]==254))data[4]=255;
WAT34 2:75153205d6e8 29 //send data
skouki 15:3ae22f7861b4 30 for(int i=0; i<6; i++) {
WAT34 2:75153205d6e8 31 serial->putc(data[i]);
WAT34 2:75153205d6e8 32 }
WAT34 0:314f2bed3958 33 return 0;
WAT34 0:314f2bed3958 34 }
WAT34 0:314f2bed3958 35
WAT34 2:75153205d6e8 36
WAT34 2:75153205d6e8 37 void estop(Serial *serial)
WAT34 1:5e8014a1adbd 38 {
WAT34 2:75153205d6e8 39 for(int i = 0; i<3; i++) {
WAT34 2:75153205d6e8 40 serial->putc(255);
WAT34 1:5e8014a1adbd 41 }
WAT34 2:75153205d6e8 42
WAT34 5:b43c03ee7f8b 43 }