AD转换的运行模式有六种,分别是:
软件触发模式(连续转换模式)
软件触发模式(单次转换模式)
硬件触发无等待模式(连续转换模式)
硬件触发无等待模式(单次转换模式)
硬件触发等待模式(连续转换模式)
硬件触发等待模式(单次转换模式)
比较常用的是单次软件触发,这次就先记录一下这种触发方式:
1.先创建AD,在R_Systeminit函数中已自动完成
void R_ADC_Create(void);
2.手动启动ADC,通过函数R_ADC_Set_OperationOn完成
void R_ADC_Set_OperationOn(void)
{
ADCE = 1U; /* enable AD comparator */
}
2.将ADM0寄存器的ADCS置1,开始AD转换
void R_ADC_Start(void)
{
ADIF = 0U; /* clear INTAD interrupt flag */
ADMK = 0U; /* enable INTAD interrupt */
ADCS = 1U; /* enable AD conversion */
}
3.AD转换结束,会将结果保存在结果寄存器(ADCR 低10位)(ADCRH 8位),并产生中断。
我们可在中断通过以下函数读取ADCR转换值
void R_ADC_Get_Result(uint16_t * const buffer)
{
*buffer = (uint16_t)(ADCR >> 6U);
}
转换过程中需要注意的事项,参照datasheet 12.6.2