teamALI / Mbed 2 deprecated HB2018

Dependencies:   mbed FreeRTOS

Committer:
takeru0x1103
Date:
Wed Dec 05 00:12:38 2018 +0000
Revision:
19:4b0fe9a5ec38
Parent:
18:5aa48aec9cae
Child:
20:0394e15412c3
???????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeru0x1103 8:1ca49cb18290 1 #ifndef __GLOBALFLAGS_H__
takeru0x1103 8:1ca49cb18290 2 #define __GLOBALFLAGS_H__
takeru0x1103 8:1ca49cb18290 3
takeru0x1103 16:05b9e44889f1 4 #include "mbed.h"
takeru0x1103 17:f9610f3cfa1b 5 #include "typedef.h"
takeru0x1103 17:f9610f3cfa1b 6
takeru0x1103 19:4b0fe9a5ec38 7 #define G_CMD_BUF_SIZ 32
takeru0x1103 19:4b0fe9a5ec38 8 #define STATE_QUE_SIZ 8
takeru0x1103 19:4b0fe9a5ec38 9
takeru0x1103 17:f9610f3cfa1b 10 typedef union{
takeru0x1103 17:f9610f3cfa1b 11 UINT16 flg;
takeru0x1103 17:f9610f3cfa1b 12 struct{
takeru0x1103 17:f9610f3cfa1b 13 bool e1 : 1;//前エンジン回転数
takeru0x1103 17:f9610f3cfa1b 14 bool e2 : 1;//後ろエンジン回転数
takeru0x1103 17:f9610f3cfa1b 15 bool m1 : 1;//サブモーター回転数
takeru0x1103 17:f9610f3cfa1b 16 bool m2 : 1;//サブモーター回転数
takeru0x1103 17:f9610f3cfa1b 17 bool m3 : 1;//サブモーター回転数
takeru0x1103 17:f9610f3cfa1b 18 bool m4 : 1;//サブモーター回転数
takeru0x1103 17:f9610f3cfa1b 19 bool gy : 1;//ジャイロ
takeru0x1103 17:f9610f3cfa1b 20 bool yaw : 1;//ヨー角
takeru0x1103 18:5aa48aec9cae 21 bool fb : 1;//PID制御feedback結果
takeru0x1103 18:5aa48aec9cae 22 bool pp : 1;//P制御ゲイン(アウターループ)
takeru0x1103 18:5aa48aec9cae 23 bool p : 1;//P制御ゲイン
takeru0x1103 18:5aa48aec9cae 24 bool i : 1;//I制御ゲイン
takeru0x1103 18:5aa48aec9cae 25 bool d : 1;//D制御ゲイン
takeru0x1103 17:f9610f3cfa1b 26 }bf;
takeru0x1103 17:f9610f3cfa1b 27 }typPrintFlag;
takeru0x1103 17:f9610f3cfa1b 28
takeru0x1103 17:f9610f3cfa1b 29 typedef union{
takeru0x1103 17:f9610f3cfa1b 30 UINT16 flg;
takeru0x1103 17:f9610f3cfa1b 31 struct{
takeru0x1103 17:f9610f3cfa1b 32 bool e1 : 1;//
takeru0x1103 17:f9610f3cfa1b 33 bool e2 : 1;//
takeru0x1103 17:f9610f3cfa1b 34 bool m1 : 1;//
takeru0x1103 17:f9610f3cfa1b 35 bool m2 : 1;//
takeru0x1103 17:f9610f3cfa1b 36 bool m3 : 1;//
takeru0x1103 17:f9610f3cfa1b 37 bool m4 : 1;//
takeru0x1103 17:f9610f3cfa1b 38 bool gy : 1;//
takeru0x1103 17:f9610f3cfa1b 39 bool yaw : 1;//
takeru0x1103 18:5aa48aec9cae 40 bool fb : 1;//PID制御feedback結果
takeru0x1103 18:5aa48aec9cae 41 bool pp : 1;//P制御ゲイン(アウターループ)
takeru0x1103 18:5aa48aec9cae 42 bool p : 1;//P制御ゲイン
takeru0x1103 18:5aa48aec9cae 43 bool i : 1;//I制御ゲイン
takeru0x1103 18:5aa48aec9cae 44 bool d : 1;//D制御ゲイン
takeru0x1103 17:f9610f3cfa1b 45 }bf;
takeru0x1103 17:f9610f3cfa1b 46 }typCalFlag;
takeru0x1103 17:f9610f3cfa1b 47
takeru0x1103 18:5aa48aec9cae 48 //チェックフラグ
takeru0x1103 18:5aa48aec9cae 49 typedef union{
takeru0x1103 18:5aa48aec9cae 50 UINT16 flg;
takeru0x1103 18:5aa48aec9cae 51 struct{
takeru0x1103 18:5aa48aec9cae 52 bool mot : 1;//
takeru0x1103 18:5aa48aec9cae 53 bool sw : 1;//
takeru0x1103 18:5aa48aec9cae 54 bool accel: 1;//
takeru0x1103 18:5aa48aec9cae 55 }bf;
takeru0x1103 18:5aa48aec9cae 56 }typChkFlag;
takeru0x1103 18:5aa48aec9cae 57
takeru0x1103 19:4b0fe9a5ec38 58 //
takeru0x1103 17:f9610f3cfa1b 59 typedef union{
takeru0x1103 17:f9610f3cfa1b 60 UINT16 dt;
takeru0x1103 17:f9610f3cfa1b 61 struct{
takeru0x1103 18:5aa48aec9cae 62 UINT16 val : 12;//アクセル設定値
takeru0x1103 17:f9610f3cfa1b 63 bool req : 1;//アクセル更新要求
takeru0x1103 17:f9610f3cfa1b 64 }bf;
takeru0x1103 17:f9610f3cfa1b 65 }typAccel;
takeru0x1103 17:f9610f3cfa1b 66
takeru0x1103 19:4b0fe9a5ec38 67 //ステート定義
takeru0x1103 19:4b0fe9a5ec38 68 enum enmHbState
takeru0x1103 19:4b0fe9a5ec38 69 {NONE //何もなし
takeru0x1103 19:4b0fe9a5ec38 70 ,WAKEUP //
takeru0x1103 19:4b0fe9a5ec38 71 ,CHECK_MOT //
takeru0x1103 19:4b0fe9a5ec38 72 ,IDLE //
takeru0x1103 19:4b0fe9a5ec38 73 ,TAKE_OFF //
takeru0x1103 19:4b0fe9a5ec38 74 ,GROUND //
takeru0x1103 19:4b0fe9a5ec38 75 };
takeru0x1103 19:4b0fe9a5ec38 76
takeru0x1103 17:f9610f3cfa1b 77 /////////////////////////////////////////////////
takeru0x1103 19:4b0fe9a5ec38 78 class GlobalFlags{
takeru0x1103 19:4b0fe9a5ec38 79 private:
takeru0x1103 19:4b0fe9a5ec38 80 enmHbState state;//現在のステート
takeru0x1103 19:4b0fe9a5ec38 81 enmHbState stateQueue[STATE_QUE_SIZ];//ステート予約用のキューバッファ
takeru0x1103 19:4b0fe9a5ec38 82 int wp; //ライトポインタ
takeru0x1103 19:4b0fe9a5ec38 83 int rp; //リードポインタ
takeru0x1103 19:4b0fe9a5ec38 84 bool full; //フルフラグ
takeru0x1103 19:4b0fe9a5ec38 85 bool empty; //エンプティフラグ
takeru0x1103 19:4b0fe9a5ec38 86 public:
takeru0x1103 19:4b0fe9a5ec38 87 GlobalFlags();
takeru0x1103 19:4b0fe9a5ec38 88 bool push(enmHbState iState);
takeru0x1103 19:4b0fe9a5ec38 89 bool pull();
takeru0x1103 19:4b0fe9a5ec38 90 };
takeru0x1103 16:05b9e44889f1 91
takeru0x1103 17:f9610f3cfa1b 92 //モニタ用LED
takeru0x1103 16:05b9e44889f1 93 extern DigitalOut led1;
takeru0x1103 16:05b9e44889f1 94 extern DigitalOut led2;
takeru0x1103 16:05b9e44889f1 95 extern DigitalOut led3;
takeru0x1103 16:05b9e44889f1 96 extern DigitalOut led4;
takeru0x1103 8:1ca49cb18290 97
takeru0x1103 19:4b0fe9a5ec38 98 extern GlobalFlags gf;
takeru0x1103 19:4b0fe9a5ec38 99
takeru0x1103 19:4b0fe9a5ec38 100 extern char g_CmdBuf[G_CMD_BUF_SIZ] ;// コマンド受け渡しバッファ
takeru0x1103 19:4b0fe9a5ec38 101 extern bool gf_CmdPrs; //コマンドパーサー実行要求フラグ
takeru0x1103 19:4b0fe9a5ec38 102
takeru0x1103 19:4b0fe9a5ec38 103 extern typPrintFlag gf_Print; //デバッグプリントフラグ(1回表示)
takeru0x1103 19:4b0fe9a5ec38 104 extern typPrintFlag gf_Mon; //デバッグモニタフラグ(繰り返し表示)
takeru0x1103 18:5aa48aec9cae 105 extern typCalFlag gf_Cal; //
takeru0x1103 18:5aa48aec9cae 106 extern typChkFlag gf_Chk; //チェックフラグ
takeru0x1103 17:f9610f3cfa1b 107 extern typAccel gf_AxReq[2]; //アクセル更新
takeru0x1103 17:f9610f3cfa1b 108 extern typAccel gf_MtReq[4]; //モーター更新
takeru0x1103 18:5aa48aec9cae 109 extern bool gf_AttCntEna; //姿勢制御イネーブル
takeru0x1103 8:1ca49cb18290 110
takeru0x1103 18:5aa48aec9cae 111
takeru0x1103 19:4b0fe9a5ec38 112
takeru0x1103 19:4b0fe9a5ec38 113
takeru0x1103 18:5aa48aec9cae 114 #endif