完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
本文主要实现S形加减速算法。
原理/思路
#ifndef __X_STEP_MOTOR_H #define __X_STEP_MOTOR_H #include "sys.h" #include "math.h" // exp() #include #include "delay.h" // Motor Parameter typedef struct{ float X_Step; float X_Fre_Min; float X_Fre_Max; float X_Jerk; }X_SpeedList_TypeDef; #define X_TIM3_FREQ (84000000 / X_TIM3_Prescaler) // 2MHz #define X_TIM3_Pulse (X_TIM3_FREQ / 500) #define X_Accel_Step 100.0f #define X_SpeedList_LEN ((u8)X_Accel_Step) #define X_FREQ_MIN 500.0f #define X_FREQ_MAX 5000.0f #define X_JERK 4.0f // Motor State #define X_ACCEL 1 // acceleration #define X_COSTT 2 // constant #define X_DECEL 3 // deceleration #define X_UNIFM 4 // uniform #define X_STOP 0 // stop #define TRUE 1 #define FALSE 0 // X - TIM3: CH1 - PA6, DIR - PA7 #define X_TIM3_Prescaler 42 #define X_TIM3_Period 0xFFFF #define X_TIM3_IRQHandler TIM3_IRQHandler // Calculate void X_Calculate_SpeedList(u32 X_PulseNum); // X void X_GPIO_Init(void); //GPIO void X_TIM3_Config(void); // TIM void X_PWM_S_Output_Left(void); void X_PWM_S_Output_Right(void); void X_Uniform_Output_Left(u32 X_PulseNum); void X_Uniform_Output_Right(u32 X_PulseNum); void X_Stop(void); void X_TIM3_IRQHandler(void); #endif /* __X_STEP_MOTOR_H */ /****************************END OF FILE****************************/ 实现效果 小结
|
|
|
|
只有小组成员才能发言,加入小组>>
2435 浏览 0 评论
9100 浏览 4 评论
36773 浏览 19 评论
5026 浏览 0 评论
24745 浏览 34 评论
1528浏览 2评论
1743浏览 1评论
2193浏览 1评论
1553浏览 0评论
524浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:15 , Processed in 1.204119 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号