//###########################################
//① ヘッダー部・グローバル定義 (main.h 想定)
//###########################################
#ifndef MAIN_H_
#define MAIN_H_

#include "ch32v20x.h"
#include <stdio.h>
#include <math.h>

#define SAMPLING_FREQ  8000   // サンプリング周波数 8kHz
#define PI             3.14159265358979323846

// パラメータ構造体
typedef struct {
    uint16_t f0;        // 500 ~ 1500 Hz
    uint16_t bw;        // 10 ~ 1500 Hz (実質幅は×2)
    uint8_t  att_order; // 2, 4, 6, 8次
    uint16_t sgc;       // 1 ~ 1500 mV (信号拡大しきい値)
    uint8_t  gnt;       // 1 ~ 100 % (画面輝度)
    uint16_t sgs;       // センター電圧 (mV)
    uint16_t nzv;       // ノイズ電圧 (mV)
} SystemParams;

// IIRバイカッドフィルター状態保持用(最大4段=8次)
typedef struct {
    int32_t b0, b1, b2; // Q14形式の係数 (実際の値 * 16384)
    int32_t a1, a2;     // Q14形式の係数 (実際の値 * 16384)
    int32_t x1, x2;     // 過去の入力値 (整数そのまま)
    int32_t y1, y2;     // 過去の出力値 (整数そのまま)
} BiquadFilter;

#endif
