本帖最后由 freeelectron 于 2018-9-2 17:07 编辑
通过任务2:主要学习,取得MCT句柄,如何找到相关操作函数,调用控制函数以及参数设定。
代码添加: 主函数,添加头文件:
- /* USER CODE BEGIN Includes */
- #include "mc_tuning.h"
- #include "mc_tasks.h"
- /* USER CODE END Includes */
复制代码 定义变量: - /* USER CODE BEGIN 1 */
- static int16_t Speed_Kp,Speed_Ki;
- MCT_Handle_t* pMctHdl;
- /* USER CODE END 1 */
复制代码 控制程序添加:- while (1)
- {
- /* USER CODE END WHILE */
- /* USER CODE BEGIN 3 */
- MC_ProgramSpeedRampMotor1(3000/6,1000);
- MC_StartMotor1();
- HAL_Delay(10000);
- MC_StopMotor1();
- HAL_Delay(3000);
-
- pMctHdl = GetMCT(M1);
- Speed_Kp = PID_GetKP(pMctHdl->pPIDSpeed);
- Speed_Ki = PID_GetKI(pMctHdl->pPIDSpeed);
- PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2);
- PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);
-
- MC_ProgramSpeedRampMotor1(3000/6,1000);
- MC_StartMotor1();
- HAL_Delay(10000);
- MC_StopMotor1();
- HAL_Delay(3000);
- PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp/2);
- PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki/2);
- MC_ProgramSpeedRampMotor1(3000/6,1000);
- MC_StartMotor1();
- HAL_Delay(10000);
- MC_StopMotor1();
- HAL_Delay(3000);
- }
- /* USER CODE END 3 */
- }
复制代码 在mc_tasks.h里面声明:- MCT_Handle_t* GetMCT(uint8_t bMotor);
复制代码
速度波形查看:
|