| | |
| | | #ifndef MOTOR_H |
| | | #define MOTOR_H |
| | | #include "" |
| | | #include "gd32e23x_exti.h" |
| | | /* µç»ú¿ØÐýתʵÏֽṹÌå */ |
| | | |
| | | #define SPEED_FILTER_NUM 30 // ËÙ¶ÈÂ˲¨´ÎÊý |
| | |
| | | /* ÀÛ¼Æ TIM_Period¸öºó²úÉúÒ»¸ö¸üлòÕßÖÐ¶Ï |
| | | µ±¶¨Ê±Æ÷´Ó0¼ÆÊýµ½65535£¬¼´Îª65535´Î£¬ÎªÒ»¸ö¼ÆÊýÖÜÆÚ */ |
| | | #define HALL_PERIOD_COUNT (0xFFFF) |
| | | |
| | | /* ͨÓÿØÖƶ¨Ê±Æ÷ʱÖÓÔ´TIMxCLK = HCLK = 72MHz |
| | | É趨¶¨Ê±Æ÷ƵÂÊΪ = TIMxCLK / (PWM_PRESCALER_COUNT) / PWM_PERIOD_COUNT = 9.987Hz |
| | | ÖÜÆÚ T = 100ms */ |
| | | #define SPEED_PRESCALER_COUNT (6400u) |
| | | #define SPEED_PERIOD_COUNT (300u) |
| | | /* ͨÓÿØÖƶ¨Ê±Æ÷ʱÖÓÔ´TIMxCLK = HCLK = 64MHz |
| | | É趨¶¨Ê±Æ÷ƵÂÊΪ = TIMxCLK / (SPEED_PRESCALER_COUNT) / SPEED_PERIOD_COUNT = 33.333Hz |
| | | ÖÜÆÚ T = 30ms */ |
| | | #define HALL_PRESCALER_COUNT (110) |
| | | |
| | | #define HALL_A_EXTI (EXTI_4) |
| | | #define HALL_B_EXTI (EXTI_5) |
| | | #define HALL_C_EXTI (EXTI_15) |
| | | |
| | | extern void HAL_HallExti_TriggerCallback(void); |
| | | #define MOTOR_OUT_CH_U (TIMER_CH_1) |
| | | #define MOTOR_OUT_CH_V (TIMER_CH_0) |
| | | #define MOTOR_OUT_CH_W (TIMER_CH_2) |
| | | |
| | | #endif |
| | | extern void HAL_HallExti_TriggerCallback(void); |
| | | extern void BLDC_SpeedAndPID(void); |
| | | extern float get_motor_speed(void); |
| | | void hall_enable(void); |
| | | void hall_disable(void); |
| | | void set_pwm_pulse(uint16_t pulse); |
| | | #endif |