|
|
@@ -15,6 +15,7 @@ static u8 key_value[3];
|
|
|
static float foc_current = 0.0f;
|
|
|
static u8 ctrl_mode = CTRL_MODE_OPEN;
|
|
|
static float max_speed = 2000;
|
|
|
+static float target_speed = 2000;
|
|
|
static u32 key_task(void *p) {
|
|
|
foc_cmd_body_t foc_cmd;
|
|
|
u8 cmd_data[16];
|
|
|
@@ -27,6 +28,7 @@ static u32 key_task(void *p) {
|
|
|
foc_cmd.cmd = Foc_Start_Motor;
|
|
|
if (PMSM_FOC_Is_Start()) {
|
|
|
PMSM_FOC_Set_Torque(foc_current);
|
|
|
+ PMSM_FOC_Set_Speed(0.0f);
|
|
|
}else {
|
|
|
cmd_data[0] = Foc_Start;
|
|
|
foc_send_command(&foc_cmd);
|
|
|
@@ -42,9 +44,12 @@ static u32 key_task(void *p) {
|
|
|
if (foc_current < 5.0f) {
|
|
|
foc_current += 1.0f;
|
|
|
}
|
|
|
+ target_speed = 1000.0f;
|
|
|
PMSM_FOC_SpeedLimit(max_speed);
|
|
|
+ PMSM_FOC_Set_Speed(max_speed);
|
|
|
PMSM_FOC_Set_Torque(foc_current);
|
|
|
- PMSM_FOC_SetCtrlMode(CTRL_MODE_TRQ);
|
|
|
+ ctrl_mode = CTRL_MODE_TRQ;
|
|
|
+ PMSM_FOC_SetCtrlMode(ctrl_mode);
|
|
|
}
|
|
|
key_value[KEY_STOP] = value;
|
|
|
}
|
|
|
@@ -53,15 +58,19 @@ static u32 key_task(void *p) {
|
|
|
if (value != key_value[KEY_FUNC]) {
|
|
|
if (value) {
|
|
|
if (ctrl_mode == CTRL_MODE_TRQ) {
|
|
|
- PMSM_FOC_EnableCruise(true);
|
|
|
ctrl_mode = CTRL_MODE_SPD;
|
|
|
+ PMSM_FOC_SetCtrlMode(ctrl_mode);
|
|
|
}else if(ctrl_mode == CTRL_MODE_SPD){
|
|
|
- PMSM_FOC_EnableCruise(false);
|
|
|
- ctrl_mode = CTRL_MODE_TRQ;
|
|
|
+ //ctrl_mode = CTRL_MODE_TRQ;
|
|
|
+ //PMSM_FOC_EnableCruise(false);
|
|
|
+ PMSM_FOC_SpeedLimit(10000);
|
|
|
+ target_speed += 1000;
|
|
|
+ PMSM_FOC_Set_Speed(target_speed);
|
|
|
+
|
|
|
}else {
|
|
|
- ctrl_mode = CTRL_MODE_TRQ;
|
|
|
+ //ctrl_mode = CTRL_MODE_TRQ;
|
|
|
}
|
|
|
- //PMSM_FOC_SetCtrlMode(ctrl_mode);
|
|
|
+
|
|
|
//PMSM_FOC_SpeedLimit(max_speed);
|
|
|
//max_speed += 1000;
|
|
|
}
|