#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