使用dac输出的电压给模拟比较器使用,怎么配置都不成功,有没有大佬知道具体需要怎么配置呀,配置代码如下:
void My_Vc_Init(void)
{
Sysctrl_SetPeripheralGate(SysctrlPeripheralVcLvd, TRUE); //开VC时钟
// Sysctrl_SetPeripheralGate(SysctrlPeripheralDac, TRUE);
// Dac0_Cmd(TRUE);
/* VC_CR寄存器 */
M0P_VC->CR_f.VC0_HYS_SEL = 1; /* VC0迟滞电压为10mV */
M0P_VC->CR_f.VC0_BIAS_SEL = 3; /* 最大功耗20μA */
M0P_VC->CR_f.REF2P5_SEL = 1; /* dac参考电压为ADC的参考电压 */
M0P_VC->CR_f.DIV_EN = 1; /* 使能6位DAC */
M0P_VC->CR_f.DIV = (28 - 1); /* DAC输出电压为28/64 VREF */
/* VC0_CR寄存器 */
M0P_VC->VC0_CR_f.IE = 1; /* 使能中断 */
M0P_VC->VC0_CR_f.LEVEL = 1; /* 高电平触发中断 */
M0P_VC->VC0_CR_f.DEBOUNCE_TIME = 2; /* 滤波时间28μs */
M0P_VC->VC0_CR_f.FLTEN = 1; /* 启动VC滤波 */
M0P_VC->VC0_CR_f.N_SEL = 0x0; /* PA0作为负端输入 */
// M0P_VC->VC0_CR_f.N_SEL = 0xd; /* 1.2V */
M0P_VC->VC0_CR_f.P_SEL = 0xf; /* DAC0作为正端输入 */
// M0P_VC->VC0_CR_f.P_SEL = 0x4; /* PA0 */
Vc_ClearItStatus(Vc0_Intf); /* 清除中断标志位 */
EnableNvic(VC0_1_2_LVD_IRQn, IrqLevel3, TRUE); /* 使能中断向量 */
Vc_Cmd(VcChannel0, TRUE); /* 使能比较器 */
}
|