arm-linux-gcc 裸机程序,2440裸机程序--ADC(ARM-Linux-gcc编译)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值