这篇是FR5969的ADC的寄存器的版本使用芯片内部1.2V参考电压的简单试验。
本试验使用是FR5969片内的P1.1管脚对应的ADC通道1也就是A1,和前面的ADC试验最大的不同是使用的参考电压为芯片内部的1.2v的基准电压。
配置ADC:
// By default, REFMSTR=1 => REFCTL 是配置内部参考电压的寄存器
while(REFCTL0 & REFGENBUSY); // 如果参考电压发生器busy, 等待
REFCTL0 |= REFVSEL_0 | REFON; // 选择内部参考源 ref = 1.2V,使能内部参考源
// Configure ADC12
ADC12CTL0 = ADC12SHT0_2 | ADC12ON; // Sampling time, S&H=16, ADC12 on
ADC12CTL1 = ADC12SHP; // ADCCLK = MODOSC; sampling timer
ADC12CTL2 |= ADC12RES_2; // 12-bit conversion results
ADC12IER0 |= ADC12IE0; // 使能ADC转换完成中断,对应着ADC中断函数中case
// 语句的ADC12IFG0
ADC12MCTL0 |= ADC12INCH_1 | ADC12VRSEL_1; // 选择通道1也就是A1,参考电压1.2v
while(!(REFCTL0 & REFGENRDY)); // 等待参考源生效
注意:单通道采样,ADC的参考电源为内部1.2v基准电压。软件设置ADC12SC采样和转换寄存器,在转换完成后自动清除。在主循环中,进入LPM0低功耗模式。等待ADC的转换完成进入ADC的中断函数中,在ADC中断服务函数中将强制CPU退出低功耗模式LPM0。如果A1的转换值大于0.5v,那么P1.0输出高电平,否者输出低电平。
调试的时候在中断服务函数中设置断点,在寄存器观察窗口中查看采样转换的值。如下图:
3-ADC-P1.1A1-Verf1.2v.rar
(27.04 KB, 下载次数: 4, 售价: 1 分芯积分)