#ifndef __LKS32MC09X_DSP_H__
#define __LKS32MC09X_DSP_H__

#include "lks32mc09x_reg.h"

/**
 * @brief 初始化DSP模块
 *
 * 该函数用于初始化DSP模块，使其处于可用状态。
 */
void DSP_Init(void);

/**
 * @brief 使能DSP模块
 *
 * 该函数用于使能DSP模块，开始处理数据。
 */
void DSP_Enable(void);

/**
 * @brief 禁用DSP模块
 *
 * 该函数用于禁用DSP模块，停止处理数据。
 */
void DSP_Disable(void);

/**
 * @brief 复位DSP模块
 *
 * 该函数用于复位DSP模块，使其恢复到初始状态。
 */
void DSP_Reset(void);

/**
 * @brief 执行整数除法
 *
 * @param a 被除数
 * @param b 除数
 * @return 商
 */
s32 DSP_Div(s32 a, s32 b);

/**
 * @brief 计算均方根值
 *
 * @param a 输入值1
 * @param b 输入值2
 * @return 均方根值
 */
uint16_t DSP_Rms(s16 a, s16 b);

/**
 * @brief 执行取模运算
 *
 * @param x 被除数
 * @param y 除数
 * @return 余数
 */
s32 DSP_Mod(s32 x, s32 y);

/**
 * @brief 计算平方根
 *
 * @param val 输入值
 * @return 平方根值
 */
uint16_t DSP_Sqrt(uint32_t val);

#endif // __LKS32MC09X_DSP_H__
