Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: globalFlags.cpp
- Revision:
- 41:45c982b1c5b6
- Parent:
- 40:debe99e228d3
- Child:
- 42:cc8501b824ba
diff -r debe99e228d3 -r 45c982b1c5b6 globalFlags.cpp --- a/globalFlags.cpp Mon Jan 21 06:32:24 2019 +0000 +++ b/globalFlags.cpp Mon Jan 21 11:57:35 2019 +0000 @@ -8,9 +8,9 @@ DigitalOut led4(LED4); //状態表示用 -DigitalOut DO_01(p22); -DigitalOut DO_02(p23); -DigitalOut DO_03(p24); +DigitalOut DO_01(p21);//R +DigitalOut DO_02(p22);//G +DigitalOut DO_03(p23);//B //モーターアクセル用アナログ入力 AnalogIn AinAxl(p20); @@ -27,12 +27,10 @@ bool gf_StopMot ;//モーターの強制停止 サーボ全閉 bool gf_FromActiveStat ;//モーターの強制停止 サーボ全閉が動作時に発生したかどうか -typPrintFlag gf_Print ;// -typPrintFlag gf_Mon ;// -typPrintFlg gf_Prt1 ; -typPrintFlg gf_Mon1 ; +typPrintFlg gf_Print ;// +typPrintFlg gf_Mon ;// typCalFlag gf_Cal ;// -typDbgPrintFlg gf_DbgPrint ;//デバッグ用 +//typDbgPrintFlg gf_DbgPrint ;//デバッグ用 typAccel gf_AxReq[2] ;//アクセル更新フラグ typAxlRpm gf_MtReq[4] ;//モーター姿勢制御更新フラグ typAxlRpm gf_MtReqOfs[4] ;//モーターオフセット更新フラグ @@ -55,14 +53,14 @@ gf_Dbg = false; gf_StopMot = false; - gf_Print.flg = 0; - gf_Mon.flg = 0; - gf_Prt1.d1.flg = 0; - gf_Prt1.d2.flg = 0; +// gf_Print.flg = 0; +// gf_Mon.flg = 0; + gf_Print.d1.flg = 0; + gf_Print.d2.flg = 0; gf_Cal.flg = 0; - gf_DbgPrint.flg = 0; + //gf_DbgPrint.flg = 0; gf_AxReq[0].dt = 0; gf_AxReq[1].dt = 0; @@ -93,6 +91,89 @@ // } } +void setDOCol(eLedCol col) +{ + switch(col){ + case WHITE: + DO_01 = !DO_01; + DO_02 = !DO_02; + DO_03 = !DO_03; + break; + case RED: + DO_01 = !DO_01; + DO_02 = 0; + DO_03 = 0; + break; + case GREEN: + DO_01 = 0; + DO_02 = !DO_02; + DO_03 = 0; + break; + case BLUE: + DO_01 = 0; + DO_02 = 0; + DO_03 = !DO_03; + break; + case YELLOW: + DO_01 = !DO_01; + DO_02 = !DO_02; + DO_03 = 0; + break; + case PURPLE: + DO_01 = !DO_01; + DO_02 = 0; + DO_03 = !DO_03; + break; + case LIGHT_BLUE: + DO_01 = 0; + DO_02 = !DO_02; + DO_03 = !DO_03; + break; + case OFF: + default: + DO_01 = 0;//R + DO_02 = 0;//G + DO_03 = 0;//B + break; + } +} + +void setDO4LED(enmHbState stat) +{ + if(stat == NONE) + {// 消灯 + setDOCol(OFF); + } + else if(stat == SLEEP) + {//YELLOW + setDOCol(YELLOW); + } + else if(stat == WAKEUP || stat == STANDBY) + {//BLUE + setDOCol(BLUE); + } + else if(stat == IDLE) + {//GREEN + setDOCol(GREEN); + } + else if(stat == TAKE_OFF || stat == HOVER || stat == DRIVE || stat == GROUND || stat == EMGGND) + {//PURPLE + setDOCol(PURPLE); + } + else if(stat == CHK_EG_ENT || stat == CHK_EG_F || stat == CHK_EG_MID || stat == CHK_EG_R || stat == CHK_EG_EXIT) + {//LIGHT BLUE + setDOCol(LIGHT_BLUE); + } + else if(stat == CHK_ENT || stat == CHK_MOT || stat == CHK_AXL || stat == CHK_ATT || stat == CHK_EXIT) + {//WHITE + setDOCol(WHITE); + } + else/* if(stat == MOT_STOP)*/ + { + setDOCol(RED); + } +} + void setState(enmHbState stat){ // ありえない遷移を排除 if(gf_State == SLEEP){if(stat != WAKEUP) return;}