![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
今までのジョイスティックの入力を段階分けしていた方式から、アナログ値をできる限りそのまま使用する方式に変更しました。
Fork of ControlMain2017 by
Diff: main.cpp
- Revision:
- 28:056287cb001c
- Parent:
- 27:1af92a603532
- Child:
- 29:8bff47ab602d
diff -r 1af92a603532 -r 056287cb001c main.cpp --- a/main.cpp Tue Mar 21 10:51:55 2017 +0000 +++ b/main.cpp Tue Mar 21 17:53:31 2017 +0000 @@ -9,7 +9,7 @@ #define THRESHOLD_OH_VALUE 0.14 #define SAMPLE_INTERVAL 0.05 -#define PHASE_NUM 7 //奇数にしてください +#define PHASE_NUM 12 //奇数にしてください #define SUM_UP_NUM 10.0 /* roll入力とピッチ入力だとピッチの方が1.5倍効くように @@ -88,14 +88,12 @@ pitchUpperDiff = value - pitchNeutral; else if(value < rollNeutral + pitchLowerDiff) pitchLowerDiff = value - pitchNeutral; - led1 =!led1; return; } else if(it == enumRoll) { if(value >rollNeutral + rollUpperDiff) rollUpperDiff = value - rollNeutral; else if(value < rollNeutral + rollLowerDiff) rollLowerDiff = value -rollNeutral ; - led2 =! led2; return; } } @@ -184,14 +182,14 @@ //pc.printf("matched:%f max:%f min:%f\n\r",(MatchedPitch - MatchedRoll) / 2.0,(pitchNeutral +pitchLowerDiff - rollNeutral - rollUpperDiff) / 2.0,(pitchNeutral + pitchUpperDiff-rollNeutral - rollLowerDiff) / 2.0); *(int *)inputDatas_L = PhaseFloat(FormatedRoll_L,(pitchNeutral + pitchUpperDiff - rollNeutral - rollLowerDiff) / 2.0,(pitchNeutral + pitchLowerDiff - rollNeutral - rollUpperDiff) / 2.0); //pc.printf("Format:%f max:%f min:%f\n\r",FormatedRoll_L,(pitchNeutral + pitchUpperDiff - rollNeutral - rollLowerDiff) / 2.0,(pitchNeutral + pitchLowerDiff - rollNeutral - rollUpperDiff) / 2.0); - if(*(int *)inputDatas_R < 0) - *(int *)inputDatas_R = 0; - else if(*(int *)inputDatas_R > PHASE_NUM * 2) - *(int *)inputDatas_R = PHASE_NUM *2; - if(*(int *)inputDatas_L < 0) - *(int *)inputDatas_L = 0 ; - else if(*(int *)inputDatas_L > PHASE_NUM*2) - *(int *)inputDatas_L =PHASE_NUM * 2; + if(*(int *)inputDatas_R < 1) + *(int *)inputDatas_R = 1; + else if(*(int *)inputDatas_R > PHASE_NUM) + *(int *)inputDatas_R = PHASE_NUM; + if(*(int *)inputDatas_L < 1) + *(int *)inputDatas_L = 1 ; + else if(*(int *)inputDatas_L > PHASE_NUM) + *(int *)inputDatas_L =PHASE_NUM; pc.printf("input_R:%d input_L:%d\n\r",*(int *)inputDatas_R,*(int *)inputDatas_L); inputDatas_R[4] = (char)drug_R;