ikarashiMDCの2byteバージョン
Dependents: NHK2019_mae_v6 NHK2019_main_v6 NHK2019_usiro_v6 2019BSyudo ... more
ikarashiMDC.cpp@17:97bb662f1e1f, 2019-09-03 (annotated)
- Committer:
- skouki
- Date:
- Tue Sep 03 05:08:36 2019 +0000
- Revision:
- 17:97bb662f1e1f
- Parent:
- 16:f1b2b34d09b3
Who changed what in which revision?
User | Revision | Line number | New 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)); |
skouki | 16:f1b2b34d09b3 | 18 | uint16_t dataSpeed = ((cropped_speed+1.0)/2.0)*0xffff; |
WAT34 | 2:75153205d6e8 | 19 | //set sending data |
WAT34 | 2:75153205d6e8 | 20 | data[0] = 255; //header |
skouki | 15:3ae22f7861b4 | 21 | data[1] = 254; |
skouki | 15:3ae22f7861b4 | 22 | data[2] = (addr<<5) + motorNum + (mode<<4)+(braking<<3); //address |
skouki | 17:97bb662f1e1f | 23 | data[3] = dataSpeed & 0xff; |
skouki | 17:97bb662f1e1f | 24 | data[4] = dataSpeed >> 8; |
skouki | 15:3ae22f7861b4 | 25 | data[5] = data[2]^data[3]^data[4]; |
skouki | 15:3ae22f7861b4 | 26 | if((data[3]==255)&&(data[4]==254))data[4]=255; |
WAT34 | 2:75153205d6e8 | 27 | //send data |
skouki | 15:3ae22f7861b4 | 28 | for(int i=0; i<6; i++) { |
WAT34 | 2:75153205d6e8 | 29 | serial->putc(data[i]); |
WAT34 | 2:75153205d6e8 | 30 | } |
WAT34 | 0:314f2bed3958 | 31 | return 0; |
WAT34 | 0:314f2bed3958 | 32 | } |
WAT34 | 0:314f2bed3958 | 33 | |
WAT34 | 2:75153205d6e8 | 34 | |
WAT34 | 2:75153205d6e8 | 35 | void estop(Serial *serial) |
WAT34 | 1:5e8014a1adbd | 36 | { |
WAT34 | 2:75153205d6e8 | 37 | for(int i = 0; i<3; i++) { |
WAT34 | 2:75153205d6e8 | 38 | serial->putc(255); |
WAT34 | 1:5e8014a1adbd | 39 | } |
WAT34 | 2:75153205d6e8 | 40 | |
WAT34 | 5:b43c03ee7f8b | 41 | } |