2018年度用翼端mbedプログラム
Dependencies: Control_Yokutan_CANver1 XBusServo mbed mbed-rtos
Fork of ControlYokutan2017_2 by
Diff: main.cpp
- Branch:
- XBUS???
- Revision:
- 23:d551db88df65
- Parent:
- 22:b38bc18ec3a1
- Child:
- 25:e8bfb629e1b1
--- a/main.cpp Sat Jan 28 02:28:06 2017 +0000 +++ b/main.cpp Wed Feb 15 13:09:40 2017 +0000 @@ -7,18 +7,18 @@ #define TO_SEND_DATAS_NUM 7 #define INIT_SERVO_PERIOD_MS 20 #define WAIT_LOOP_TIME 0.02 -#define CONTROL_VALUES_NUM 2 +#define CONTROL_VALUES_NUM sizeof(float) + 1 #define TO_SEND_CAN_ID 100 #define ADXL_MEAN_NUM 10 #define SEND_DATAS_LOOP_TIME 0.1 #define RECEIVE_DATAS_LOOP_TIME 0.05 -#define ERURON_MOVE_DEG_INI_R 10 // もともと10 +#define ERURON_MOVE_DEG_INI_R 30 // もともと10 #define DRUG_MOVE_DEG_INI_R 76 #define ERURON_TRIM_INI_R 97 //元々94 #define DRUG_TRIM_INI_R 33 -#define ERURON_MOVE_DEG_INI_L -8 //もともと-7 +#define ERURON_MOVE_DEG_INI_L -30 //もともと-7 #define DRUG_MOVE_DEG_INI_L -80 #define ERURON_TRIM_INI_L 113 //元々95 #define DRUG_TRIM_INI_L 110 @@ -47,12 +47,13 @@ Ticker receiveDatasTicker; char toSendDatas[TO_SEND_DATAS_NUM]; -char controlValues[CONTROL_VALUES_NUM];//0:eruruon,1:drug - +char controlValues[CONTROL_VALUES_NUM];//0~3:eruruon,4:drug +char floatvalues[sizeof(float)]; float eruronTrim; float drugTrim; float eruronMoveDeg; float drugMoveDeg; +float eruronfloat; unsigned short ina_val; double V,C; bool SERVO_FLAG; @@ -147,7 +148,9 @@ if(can.read(recmsg)){ for(int i = 0; i < CONTROL_VALUES_NUM; i++){ controlValues[i] = recmsg.data[i]; + if(i<CONTROL_VALUES_NUM-1) floatvalues[i] = controlValues[i]; } + eruronfloat = *(const float *)floatvalues; led1 = !led1; //WriteServo(); } @@ -176,8 +179,9 @@ // } // else{ // led3 = 0; - eruronServo.pulsewidth(calcPulse(eruronTrim+eruronMoveDeg*(controlValues[0]-1))); - drugServo.pulsewidth(calcPulse(drugTrim+drugMoveDeg*controlValues[1])); +// eruronServo.pulsewidth(calcPulse( eruronTrim + eruronMoveDeg * (controlValues[0]-1) )); + drugServo.pulsewidth(calcPulse( drugTrim + drugMoveDeg * controlValues[4])); + eruronServo.pulsewidth(calcPulse( eruronTrim + eruronMoveDeg * (eruronfloat-1) )); //} } @@ -193,7 +197,7 @@ } //pc.printf("eruronTrim:%f drugTrim:%f\n\r",eruronTrim,drugTrim); pc.printf("eruronTrim:%f drugTrim:%f ",eruronTrim,drugTrim); - pc.printf("eMD:%f dMD:%f\n\r",eruronMoveDeg,drugMoveDeg); + pc.printf("eMD:%f dMD:%f ef:%f\n\r",eruronMoveDeg,drugMoveDeg,eruronfloat); } void checkMaxDeg(){ @@ -210,7 +214,7 @@ } // pc.printf("eMD:%f dMD:%f\n\r",eruronMoveDeg,drugMoveDeg); pc.printf("eruronTrim:%f drugTrim:%f ",eruronTrim,drugTrim); - pc.printf("eMD:%f dMD:%f\n\r",eruronMoveDeg,drugMoveDeg); + pc.printf("eMD:%f dMD:%f ef:%f\n\r",eruronMoveDeg,drugMoveDeg,eruronfloat); wait_us(10); } @@ -225,7 +229,7 @@ } // pc.printf("eT:%f\n\r",eruronTrim); pc.printf("eruronTrim:%f drugTrim:%f ",eruronTrim,drugTrim); - pc.printf("eMD:%f dMD:%f\n\r",eruronMoveDeg,drugMoveDeg); + pc.printf("eMD:%f dMD:%f ef:%f\n\r",eruronMoveDeg,drugMoveDeg,eruronfloat); led4 = 0; debugLED = 0;