初级会员

- 积分
- 188
- 金钱
- 188
- 注册时间
- 2019-10-28
- 在线时间
- 37 小时
|
1金钱
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); /* 使能比较器 */
}
dac作为模拟比较器的正向输入端,PA0作为负向输入端,如此配置不正确,有没有大佬知道的,需要开启dac的相应功能吗,?????
|
|