![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
今までのジョイスティックの入力を段階分けしていた方式から、アナログ値をできる限りそのまま使用する方式に変更しました。
Fork of ControlMain2017 by
Diff: main.cpp
- Revision:
- 16:336e8b102555
- Parent:
- 15:c5ade23e5de4
- Child:
- 17:e6d7bdf2c5f6
- Child:
- 18:31722545ecf1
diff -r c5ade23e5de4 -r 336e8b102555 main.cpp --- a/main.cpp Sat Mar 11 11:10:35 2017 +0000 +++ b/main.cpp Sat Mar 11 21:32:50 2017 +0000 @@ -7,7 +7,7 @@ #define SEND_DATAS_CAN_ID 100 #define SEND_DATAS_TIME 0.5 #define THRESHOLD_OH_VALUE 0.14 -#define SUM_UP_NUM 25 +#define SUM_UP_NUM 20 #define SAMPLE_INTERVAL 0.05 //-----------------------------------(resetInterrupt def) @@ -61,9 +61,19 @@ void InputControlValues() { - *(float *)inputDatas_R = get_analogin_ave(pichPin) + get_analogin_ave(rollPin); - *(float *)inputDatas_L = get_analogin_ave(pichPin) - get_analogin_ave(rollPin); - pc.printf("input_R:%f input_L:%f\n\r",*(float *)inputDatas_R,*(float *)inputDatas_L); + *(float *)inputDatas_R = get_analogin_ave(pichPin) * (2.0/3.0) + get_analogin_ave(rollPin) * (1.0 / 3.0); + *(float *)inputDatas_L = get_analogin_ave(pichPin) * (2.0/3.0) - get_analogin_ave(rollPin) * (1.0 / 3.0); + + if(*(float *)inputDatas_R < 0) + *(float *)inputDatas_R = 0; + else if(*(float *)inputDatas_R > 1) + *(float *)inputDatas_R = 1; + if(*(float *)inputDatas_L < 0) + *(float *)inputDatas_L = 0 ; + else if(*(float *)inputDatas_L > 1) + *(float *)inputDatas_L =1; + + pc.printf("input_R:%f input_L:%f\n\r",*(float *)inputDatas_R,*(float *)inputDatas_L); inputDatas_R[4] = (char)drug_R; led4 =! led4; pc.printf("%c",*(char *)inputDatas_R[4]);