/****************************************************************************** * @file app_mode.h * @brief 6 种自动玩法:节拍含方向与 PWM 占空比(0=停,1~6=波形) * @author cyWu <1917507415@qq.com> * @date 2026.08.24 * @version V1.2.0 * @history * - V1.0.0, 2026.08.21, cyWu, 首次发布 * - V1.1.0, 2026.08.24, cyWu, 接入 H 桥往返节拍 * - V1.2.0, 2026.08.24, cyWu, 节拍带占空比;六档波形加花样 ******************************************************************************/ #ifndef __APP_MODE_H__ #define __APP_MODE_H__ #include typedef enum { APP_MODE_OK = 0, APP_MODE_ERR_PARAM, APP_MODE_ERR_NOT_INIT } AppMode_Ret_t; /** * @brief 初始化,电机停 * @return APP_MODE_OK=成功 */ AppMode_Ret_t app_mode_init(void); /** * @brief 启动自动模式 1~6,循环播放节拍 * @param mode 玩法编号,范围 1~6 * @return APP_MODE_OK=成功,APP_MODE_ERR_NOT_INIT=未初始化,APP_MODE_ERR_PARAM=参数非法 */ AppMode_Ret_t app_mode_start(uint8_t mode); /** * @brief 停止玩法并刹车 * @return 无 */ void app_mode_stop(void); /** * @brief 推进当前节拍(按真实毫秒,不依赖回调是否刚好 1ms) * @return 无 */ void app_mode_run(void); /** * @brief 读取当前自动模式 * @return 0=停转,1~6=对应玩法 */ uint8_t app_mode_get_active(void); /** * @brief 查询是否已初始化 * @return APP_MODE_OK=已初始化,APP_MODE_ERR_NOT_INIT=未初始化 */ AppMode_Ret_t app_mode_get_status(void); #endif /* __APP_MODE_H__ */