Files
2026-09-01 17:31:15 +08:00

62 lines
1.6 KiB
C

/******************************************************************************
* @file app_mode.h
* @brief 弹力魔盒 5 种双电机自动玩法(0=停,1~5=玩法)
* @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 <stdint.h>
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~5,循环播放节拍
* @param mode 玩法编号,范围 1~5
* @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~5=对应玩法
*/
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__ */