#include <MyProject.h>

/*
    已使用ADC端口
    P25 AD3  SREF  !>禁用
    P24 AD2  OVP
    P16 AD9  NTC
    P34 AD7  IBUS !> AD6需要外部接入2.5V分压并开启AD6通道 否则会影响AD7采样数据
    特殊端口
    AD0 U相电流采样
    AD1 V相电流采样
    AD4 W相电流采样或者母线电流采样
*/

/**
    @function     ADC_Init
    @brief        ADC初始化
    @date         2025-12-23
*/
void ADC_Init(void)
{
    // 配置参考电压为5V
    SetReg(VREF_VHALF_CR, VRVSEL1 | VRVSEL0, VRVSEL0);
    // 配置半电压为2.5V
    SetBit(VREF_VHALF_CR, VHALFSEL1 | VHALFSEL0);
    // 使能VREF输出
    SetBit(P3_AN, PIN5);
    SetBit(P3_OE, PIN5);
    // 使能基准电压与半电压
    SetBit(VREF_VHALF_CR, VREFEN | VHALFEN);
    // 端口使能
    SetBit(P1_AN, PIN6);
    SetBit(P2_AN, PIN4 | PIN5);
    SetBit(P3_AN, PIN4);
    // 通道使能
    SetBit(ADC_MASK, CH2EN | CH3EN | CH7EN | CH9EN);
    SetBit(ADC_MASK, 0x3000);
    ADC_SCYC  = 0x33;
    // 高位对齐
    SetBit(ADC_CR, ADCALIGN);
    ClrBit(ADC_CR, ADCIE);
    SetBit(ADC_CR, ADCEN);
}

