AD转换实现步骤:
1)通过转化频率计算预分频值
2)写预分频值和模拟通道到ADCCON
3)通过设置ADCCON的第0位为1,开始ADC
4)确定转换开始后,通过查询ADCCON[15](转换标志结束位)是否为1判断是否转换结束
5)如果转换结束,读取ADCDATO[0-9],即转换后的数据
1.首先看下head.S文件
*************************************************************************
.extern main
.text
.global _start
_start:
******************************************************************************
b Reset
Reset:
ldr sp, =4096 @ 设置栈指针,以下都是C函数,调用前需要设好栈
bl disable_watch_dog @ 关闭WATCHDOG,否则CPU会不断重启
bl clock_init @ 设置MPLL,改变FCLK、HCLK、PCLK
bl memsetup @ 设置存储控制器以使用SDRAM
bl inituart
bl copy_steppingstone_to_sdram @ 复制代码到SDRAM中
ldr pc, =on_sdram @ 跳到SDRAM中继续执行
on_sdram:
msr cpsr_c, #0xd2 @ 进入中断模式
ldr sp, =4096 @ 设置中断模式栈指针
msr cpsr_c, #0xdf @ 进入系统模式
ldr sp, =0x34000000 @ 设置系统模式栈指针,
msr cpsr_c, #0x5f @ 设置I-bit=0,开IRQ中断
ldr lr, =halt_loop @ 设置返回地址
ldr pc, =Main @ 调用main函数
halt_loop:
b halt_loop
2.下面的是主函数了。实现的功能的就是把AD转换后的值读回串口 每隔一段时间读回一次 main.c