#include "tb6612.h" #include "bsp_gpio.h" #include "bsp_timer.h" /************************************************************************************* * @brief tb6612初始化 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void tb6612_init(void) { bsp_gpio_tb6612_init(); bsp_timer_tb6612_init(); } /************************************************************************************* * @brief 左边轮胎转 * @param[in/out] Speed【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ static void tb6612_left_rotate(int16_t Speed) { if (Speed >0) { bsp_gpio_tb6612_AIN1_enable(); bsp_gpio_tb6612_AIN2_disable(); bsp_timer_tb6612_pwmA_change(Speed); } else if(Speed==0) { bsp_gpio_tb6612_AIN1_enable(); bsp_gpio_tb6612_AIN2_enable(); bsp_timer_tb6612_pwmA_change(Speed); } else { bsp_gpio_tb6612_AIN1_disable(); bsp_gpio_tb6612_AIN2_enable(); bsp_timer_tb6612_pwmA_change(-Speed); } } /************************************************************************************* * @brief 右边轮胎转 * @param[in/out] Speed【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ static void tb6612_right_rotate(int16_t Speed) { if (Speed >0) { bsp_gpio_tb6612_BIN1_enable(); bsp_gpio_tb6612_BIN2_disable(); bsp_timer_tb6612_pwmB_change(Speed); } else if(Speed==0) { bsp_gpio_tb6612_BIN1_enable(); bsp_gpio_tb6612_BIN2_enable(); bsp_timer_tb6612_pwmB_change(Speed); } else { bsp_gpio_tb6612_BIN1_disable(); bsp_gpio_tb6612_BIN2_enable(); bsp_timer_tb6612_pwmB_change(-Speed); } } /************************************************************************************* * @brief tb6612 前进 * @param[in/out] Speed【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void tb6612_go_ahead(int16_t Speed) { tb6612_left_rotate(Speed); tb6612_right_rotate(-Speed); } /************************************************************************************* * @brief tb6612 后退 * @param[in/out] Speed【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void tb6612_go_back(int16_t Speed) { tb6612_left_rotate(-Speed); tb6612_right_rotate(Speed); } /************************************************************************************* * @brief tb6612 左转 * @param[in/out] Speed【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void tb6612_go_left(int16_t Speed) { tb6612_left_rotate(-Speed); tb6612_right_rotate(0); } /************************************************************************************* * @brief tb6612 右转 * @param[in/out] Speed【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void tb6612_go_right(int16_t Speed) { tb6612_left_rotate(0); tb6612_right_rotate(Speed); } /************************************************************************************* * @brief tb6612 自转 * @param[in/out] Speed【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void tb6612_go_self_rotate(int16_t Speed) { tb6612_left_rotate(Speed); tb6612_right_rotate(Speed); } /************************************************************************************* * @brief tb6612 停止 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void tb6612_stop(void) { tb6612_left_rotate(0); tb6612_right_rotate(0); } /************************************************************************************* * @brief tB6612 设置整体速度 * @param[in/out] Speed【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void tb6612_change_speed(uint16_t Speed) { bsp_timer_tb6612_pwmA_change(Speed); bsp_timer_tb6612_pwmB_change(Speed); } // /************************************************************************************* // * @brief AIN1 ON // * // * @warning 【不可重入,阻塞等警告】 // * @note 【重大修改】 // *************************************************************************************/ // void tb6612_AIN1_on(void) // { // bsp_gpio_tb6612_AIN1_enable(); // } // /************************************************************************************* // * @brief AIN1 OFF // * // * @warning 【不可重入,阻塞等警告】 // * @note 【重大修改】 // *************************************************************************************/ // void tb6612_AIN1_off(void) // { // bsp_gpio_tb6612_AIN1_disable(); // } // /************************************************************************************* // * @brief AIN2 ON // * // * @warning 【不可重入,阻塞等警告】 // * @note 【重大修改】 // *************************************************************************************/ // void tb6612_AIN2_on(void) // { // bsp_gpio_tb6612_AIN2_enable(); // } // /************************************************************************************* // * @brief AIN2 OFF // * // * @warning 【不可重入,阻塞等警告】 // * @note 【重大修改】 // *************************************************************************************/ // void tb6612_AIN2_off(void) // { // bsp_gpio_tb6612_AIN2_disable(); // } // /************************************************************************************* // * @brief BIN1 ON // * // * @warning 【不可重入,阻塞等警告】 // * @note 【重大修改】 // *************************************************************************************/ // void tb6612_BIN1_on(void) // { // bsp_gpio_tb6612_BIN1_enable(); // } // /************************************************************************************* // * @brief BIN1 OFF // * // * @warning 【不可重入,阻塞等警告】 // * @note 【重大修改】 // *************************************************************************************/ // void tb6612_BIN1_off(void) // { // bsp_gpio_tb6612_BIN1_disable(); // } // /************************************************************************************* // * @brief BIN2 ON // * // * @warning 【不可重入,阻塞等警告】 // * @note 【重大修改】 // *************************************************************************************/ // void tb6612_BIN2_on(void) // { // bsp_gpio_tb6612_BIN2_enable(); // } // /************************************************************************************* // * @brief BIN2 OFF // * // * @warning 【不可重入,阻塞等警告】 // * @note 【重大修改】 // *************************************************************************************/ // void tb6612_BIN2_off(void) // { // bsp_gpio_tb6612_BIN2_disable(); // } // void tb6612_PWMA_adjust(uint16_t val) // { // TIM_SetCompare4(TIM_MOTOR, Compare); // }