tao_z
2021-07-14 82e38738a4d532cc3d56cbf80c1a4093f23cdd6a
USR/INC/motor.h
@@ -1,6 +1,7 @@
#ifndef MOTOR_H
#define MOTOR_H
#include ""
#include "gpio.h"
#include "gd32e23x_exti.h"
/* µç»ú¿ØÐýתʵÏֽṹÌå */
#define SPEED_FILTER_NUM 30 // ËÙ¶ÈÂ˲¨´ÎÊý
@@ -16,16 +17,35 @@
/* ÀۼƠ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 (30000u)
/* Í¨ÓÿØÖƶ¨Ê±Æ÷ʱÖÓÔ´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_C_EXTI (EXTI_4)
#define HALL_B_EXTI (EXTI_5)
#define HALL_C_EXTI (EXTI_15)
#define HALL_A_EXTI (EXTI_15)
#define MOTOR_OUT_CH_U (TIMER_CH_1)
#define MOTOR_OUT_CH_V (TIMER_CH_0)
#define MOTOR_OUT_CH_W (TIMER_CH_2)
#define MOTOR_U_L_ENABLE (gpio_bit_write(PWM_LIN2_PORT, PWM_LIN2_PIN, SET))
#define MOTOR_U_L_DISABLE (gpio_bit_write(PWM_LIN2_PORT, PWM_LIN2_PIN, RESET))
#define MOTOR_V_L_ENABLE (gpio_bit_write(PWM_LIN3_PORT, PWM_LIN3_PIN, SET))
#define MOTOR_V_L_DISABLE (gpio_bit_write(PWM_LIN3_PORT, PWM_LIN3_PIN, RESET))
#define MOTOR_W_L_ENABLE (gpio_bit_write(PWM_LIN1_PORT, PWM_LIN1_PIN, SET))
#define MOTOR_W_L_DISABLE (gpio_bit_write(PWM_LIN1_PORT, PWM_LIN1_PIN, RESET))
extern void HAL_HallExti_TriggerCallback(void);
#endif
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);
extern void Motor_Init(void);
#endif