#ifndef MOTOR_H
|
#define MOTOR_H
|
#include ""
|
/* µç»ú¿ØÐýתʵÏֽṹÌå */
|
|
#define SPEED_FILTER_NUM 30 // ËÙ¶ÈÂ˲¨´ÎÊý
|
|
typedef struct
|
{
|
unsigned long timeout; // ¶¨Ê±Æ÷¸üмÆÊý
|
float speed; // µç»úËÙ¶È rps£¨×ª/·ÖÖÓ£©
|
unsigned long enable_flag; // µç»úʹÄܱêÖ¾
|
signed int speed_group[SPEED_FILTER_NUM];
|
} motor_rotate_t;
|
|
/* ÀÛ¼Æ 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 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);
|
|
#endif
|