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: userTask.cpp
- Revision:
- 24:c5945aaae777
- Parent:
- 23:79e20be4bc5b
- Child:
- 25:f3a6e7eec9c3
--- a/userTask.cpp Sat Dec 08 12:08:25 2018 +0000
+++ b/userTask.cpp Mon Dec 10 12:29:37 2018 +0000
@@ -8,6 +8,7 @@
#include "HbManager.h"
#include "hbCommand.h"
#include "uart.h"
+#include "fpga.h"
//タスクハンドル(停止とか再開に必要)
static xTaskHandle tskHandle[3]={NULL,};
@@ -43,12 +44,12 @@
commandParse();
//
- if(gf_Armed){
- setState(WAKEUP);
- gf_Armed = false;
- // taskStop(0);//制御タスクを止める
- // taskStart(2);//デバッグタスク再開
- }
+// if(gf_Armed){
+// setState(WAKEUP);
+// gf_Armed = false;
+// // taskStop(0);//制御タスクを止める
+// // taskStart(2);//デバッグタスク再開
+// }
// else{
// taskStop(2);//デバッグタスクを止める
// taskStart(0);//制御タスク再開
@@ -74,6 +75,18 @@
led1=!led1;
bDoCtrlAtt = false;
bDoCtrlMot = false;
+
+ // PID係数アップデートチェック
+ if(gf_PidParaUpdate){
+ hb.setAttPara(g_PidPara);
+ sp.printf("Pp : [%f]\r\n",g_PidPara.PP);
+ sp.printf("P : [%f]\r\n",g_PidPara.P);
+ sp.printf("I : [%f]\r\n",g_PidPara.I);
+ sp.printf("D : [%f]\r\n",g_PidPara.D);
+ sp.printf("IMAX: [%f]\r\n",g_PidPara.IMax);
+ sp.printf("IMIN: [%f]\r\n",g_PidPara.IMin);
+ gf_PidParaUpdate = false;
+ }
//▼①状態読み出し系
hb.getAttitude(); //現在角度読み出し
@@ -84,19 +97,21 @@
switch(gf_State){
case SLEEP:
if(gf_Dbg){
+ gf_Dbg = false;
taskStart(2);
}
else if(gf_Armed){
+ gf_Armed = false;
+// hb.initChkMotor();
setState(WAKEUP);
- gf_Armed = false;
}
break;
case WAKEUP:
- { //各種モーター
- //機材のチェック
- //今はそのまま次へ
+ //各種モーター
+ //機材のチェック
+// if(hb.chkMotor() == true){
setState(STANDBY);
- }
+// }
break;
case STANDBY:
// モーター回転数のチェック
@@ -194,12 +209,22 @@
void taskDebug(void *pvParameters){
taskStop(2);//自ら止めてレジュームされるまで待つ
-
+ UCHAR Num;
+ INT16 iVal;
+ bool rvFlg;
+
//この関数をリターンしてしまうと他のタスクも止まるのでwhileで回すこと!
while(1){
-
-
-
+ for(Num = 0; Num < 8; ++Num){
+ for(iVal = 50; iVal < 300; ++iVal){
+ fpgaMotor(Num, iVal);
+ wait(0.01);
+ }
+ for(iVal = 300; iVal >= 50; --iVal){
+ fpgaMotor(Num, iVal);
+ wait(0.01);
+ }
+ }
//自タスク停止させて次の周期まで待つ
gf_Dbg = false;
sp.printf("Do DebugTask!");
@@ -218,7 +243,7 @@
if(TaskRtn==pdTRUE){sp.printf("Task0 Set : Command parser\r\n");}
//タスク1:制御タスク
- TaskRtn= xTaskCreate(taskHbControl, (signed portCHAR *)"TaskHbCont", 192, NULL, 2, &tskHandle[1]);
+ TaskRtn= xTaskCreate(taskHbControl, (signed portCHAR *)"TaskHbCont", 256, NULL, 2, &tskHandle[1]);
if(TaskRtn==pdTRUE){sp.printf("Task1 Set : Hoverbike Control\r\n");}
//タスク2:デバッグタスク