ver CAN
ikarashiMDC.cpp@14:b1b58b74dd4c, 2018-11-27 (annotated)
- 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?
User | Revision | Line number | New 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 | } |