对ADC裸机程序设计做个总结:
首先是程序设计流程:
一、时钟频率设置
二、ADC初始化
1、转换通道选择(ADCCON寄存器中的[5:3]位)
2、转换频率设置(主要是设置预分频器的值)(ADCCON寄存器中的[13:6]位)
3、预分频器使能(ADCCON寄存器中的第14位)
三、读取AD转换值
1、转换启动(ADCCON寄存器中的第0位)
2、判断转换是否启动(若果启动了,那么第0位会被清0)
3、判断转换是否结束(ADCCON寄存器中的第15位,如果结束了,此位会被置1)
4、读取转换的值(ADCDAT0寄存器的[9:0]位,且数值范围在0-0x3FF之间)
下面是寄存器的具体信息:
注释:其他包含文件全部采用国嵌例程里面的文件,也就是说只需更改主函数即可。想要查看转换后的值,我是采用AXD+jlink仿真调试,全速运行后,采集到数据之后,停止,然后把鼠标放在获取的那个值上即可查看出转换后的实际值是多少。
源程序:
//Main.c
/*********************************************
实现功能:对开发板自带的电压进行AD转换,得到数字量
*********************************************