ver CAN

Committer:
tknara
Date:
Tue Nov 27 06:19:29 2018 +0000
Revision:
14:b1b58b74dd4c
Parent:
13:ea34af94e90c
RS-485 > comment out; CAN > add

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tknara 14:b1b58b74dd4c 1 #include "mbed.h"
WAT34 0:314f2bed3958 2 #include "ikarashiMDC.h"
WAT34 0:314f2bed3958 3
WAT34 2:75153205d6e8 4 ikarashiMDC::ikarashiMDC(DigitalOut* serialcontrol,uint8_t taddr,uint8_t tmotorNum,bool tmode,Serial *tserial)
WAT34 0:314f2bed3958 5 {
WAT34 2:75153205d6e8 6 serialControl = serialcontrol;
WAT34 1:5e8014a1adbd 7 serialControl->write(true);
WAT34 2:75153205d6e8 8 serial = tserial;
WAT34 2:75153205d6e8 9 addr = taddr;
WAT34 2:75153205d6e8 10 motorNum = tmotorNum;
WAT34 2:75153205d6e8 11 mode = tmode;
WAT34 9:12ea2a3883bb 12 braking = true;
WAT34 0:314f2bed3958 13 }
tknara 14:b1b58b74dd4c 14 ikarashiMDC::ikarashiMDC(uint8_t taddr,uint8_t tmotorNum,bool tmode,CAN *can)
tknara 14:b1b58b74dd4c 15 {
tknara 14:b1b58b74dd4c 16 can_driver = can;
tknara 14:b1b58b74dd4c 17 addr = taddr;
tknara 14:b1b58b74dd4c 18 motorNum = tmotorNum;
tknara 14:b1b58b74dd4c 19 mode = tmode;
tknara 14:b1b58b74dd4c 20 braking = true;
tknara 14:b1b58b74dd4c 21 }
WAT34 2:75153205d6e8 22 int ikarashiMDC::setSpeed(const double& speed)
WAT34 0:314f2bed3958 23 {
Wataru Nakata 12:3fa4f849d6f7 24 uint8_t data[4],dataSpeed;
WAT34 2:75153205d6e8 25 //Limiter
WAT34 13:ea34af94e90c 26 const double cropped_speed = std::min(1.0,std::max(-1.0,speed));
WAT34 2:75153205d6e8 27 //dataspeed 0~253 neutaral 126
WAT34 2:75153205d6e8 28 dataSpeed = ((cropped_speed+1.0)/2.0)*253;
WAT34 2:75153205d6e8 29 //printf("%d\n",dataSpeed);
WAT34 2:75153205d6e8 30 //set sending data
tknara 14:b1b58b74dd4c 31 //msg.data[0] = 255; //header
tknara 14:b1b58b74dd4c 32 msg.data[0] = (addr<<5) + motorNum + (mode<<4)+(braking<<3); //address
tknara 14:b1b58b74dd4c 33 msg.data[1] = dataSpeed;
tknara 14:b1b58b74dd4c 34 msg.data[2] = data[1]^data[2];
tknara 14:b1b58b74dd4c 35 msg.id = 1;
tknara 14:b1b58b74dd4c 36 msg.len=3;
tknara 14:b1b58b74dd4c 37 can_driver->write(msg);
WAT34 2:75153205d6e8 38 //send data
tknara 14:b1b58b74dd4c 39 //for(int i=0; i<4; i++) {
tknara 14:b1b58b74dd4c 40 //serial->putc(data[i]);
tknara 14:b1b58b74dd4c 41 //}
WAT34 0:314f2bed3958 42 return 0;
WAT34 0:314f2bed3958 43 }
WAT34 0:314f2bed3958 44
WAT34 2:75153205d6e8 45
WAT34 2:75153205d6e8 46 void estop(Serial *serial)
WAT34 1:5e8014a1adbd 47 {
WAT34 2:75153205d6e8 48 for(int i = 0; i<3; i++) {
WAT34 2:75153205d6e8 49 serial->putc(255);
WAT34 1:5e8014a1adbd 50 }
WAT34 2:75153205d6e8 51
WAT34 5:b43c03ee7f8b 52 }