#ifndef SINE_GENERATOR_H #define SINE_GENERATOR_H #include #include #ifdef __cplusplus extern "C" { #endif // 正弦波生成器结构体 typedef struct { // 用户可调参数 float frequency; // 正弦波频率 (Hz) float amplitude; // 幅值 (V) // 内部状态 uint32_t sample_count; // 样本计数器 float sample_rate; // 采样率 (Hz) bool is_running; // 是否正在运行 // 预计算正弦波查找表 float* sine_lookup_table; // 正弦波查找表 uint32_t table_size; // 查找表大小 uint32_t table_index; // 当前索引 } sine_generator_t; // 函数声明 void sine_generator_init(sine_generator_t *generator, float sample_rate); void sine_generator_set_frequency(sine_generator_t *generator, float frequency); void sine_generator_set_amplitude(sine_generator_t *generator, float amplitude_mv); void sine_generator_start(sine_generator_t *generator); void sine_generator_stop(sine_generator_t *generator); void sine_generator_reset(sine_generator_t *generator); float sine_generator_get_next_sample(sine_generator_t *generator); void sine_generator_cleanup(sine_generator_t *generator); // 查找表管理函数 void sine_generator_generate_lookup_table(sine_generator_t *generator); void sine_generator_free_lookup_table(sine_generator_t *generator); #ifdef __cplusplus } #endif #endif // SINE_GENERATOR_H