查看: 3922|回复: 8

[其他] 关于DG128AD转换后寄存器的值一直不变的问题

[复制链接]

该用户从未签到

4

主题

21

帖子

0

注册会员

Rank: 2

积分
70
最后登录
1970-1-1
发表于 2013-7-11 23:35:25 | 显示全部楼层 |阅读模式
求助:我写的关于DG128的AD转换程序,为什么怎么改变所采集的电压值,结果寄存器的值一直为255???
 
ps:初始化程序如下 
void ADC_Init(void)
{


  ATD0CTL2=0x80; //AD转换正常工作,自动清零无外部触发,禁止中断
  ATD0CTL3=0x40; //每个序列8次转换, No FIFO, 不进入Freeze模式
  ATD0CTL4=0xAb; // 采样精度为8,4个时钟, ATDClock=[BusClock*0.5]/[PRS+1]=1MHz ; PRS=01011=11, smp=01
  ATD0CTL5=0xb0; // 无符号 右对齐,多通道采样,从通道0开始 
  ATD0DIEN=0x00; // 禁止数字输入缓冲
}
时间紧迫,期待中……等待中……
我知道答案 目前已有7人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-7-12 10:20:10 | 显示全部楼层

    RE:关于DG128AD转换后寄存器的值一直不变的问题

    请问你的硬件接入的是哪个AD通道?要根据硬件的输入来初始化。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    21

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    1970-1-1
     楼主| 发表于 2013-7-12 12:40:48 | 显示全部楼层

    回复:关于DG128AD转换后寄存器的值一直不变的问题

    回复第 2 楼 于2013-07-12 10:20:10发表:
    请问你的硬件接入的是哪个AD通道?要根据硬件的输入来初始化。 

    额~~我实际上只采集两个模拟量,分别用1通道和2通道的·~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    459

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    303
    最后登录
    2024-10-24
    发表于 2013-7-12 14:28:35 | 显示全部楼层

    回复:关于DG128AD转换后寄存器的值一直不变的问题

    没板子,你可以看看这一贴https://www.eefocus.com/bbs/article_265_184048.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    21

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    1970-1-1
     楼主| 发表于 2013-7-12 14:33:39 | 显示全部楼层

    RE:关于DG128AD转换后寄存器的值一直不变的问题

    额·~这一贴我已经下载了,因为我是多通道采样,想着单通道行不行,就用这贴的程序试了一下,但是这贴程序中的哪个 while(!ATD0STAT0_SCF);一直跳不出来~~纠结的慌~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    21

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    1970-1-1
     楼主| 发表于 2013-7-12 14:39:07 | 显示全部楼层

    回复:关于DG128AD转换后寄存器的值一直不变的问题

    回复第 4 楼 于2013-07-12 14:28:35发表:
    没板子,你可以看看这一贴https://www.eefocus.com/bbs/article_265_184048.html
    额·~这一贴我已经下载了,因为我是多通道采样,想着单通道行不行,就用这贴的程序试了一下,但是这贴程序中的while(!ATD0STAT0_SCF);一直跳不出来~~纠结的慌~~ 
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    21

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    1970-1-1
     楼主| 发表于 2013-7-12 16:14:54 | 显示全部楼层

    回复:关于DG128AD转换后寄存器的值一直不变的问题

    回复第 2 楼 于2013-07-12 10:20:10发表:
    请问你的硬件接入的是哪个AD通道?要根据硬件的输入来初始化。        
    安管理员你好:我的硬件连接的是1和2通道,以下是我的AD初始化程序,能给看一下有什么问题吗?我用万用表测量了,AN2通道输入的电压是2V,但是直接读寄存器的值却是0.
     
    void ADC_Init(void)
    { ATD0CTL2=0xc0; //AD转换正常工作,自动清零无外部触发,禁止中断
      ATD0CTL3=010; //每个序列的长度为2, No FIFO, 不进入Freeze模式
     ATD0CTL4=0xAb; // 采样精度为8,4个时钟, ATDClock=[BusClock*0.5]/[PRS+1]=1MHz ; PRS=01011=11, smp=01
     ATD0CTL5=0xb1; // 无符号 右对齐,多通道采样,从通道1开始 
     ATD0DIEN=0x00; // 禁止数字输入缓冲
      }
    另外我想问一下采集的数据是存在结果寄存器1和2中,还是结果寄存器0和1中??
     

     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    4
    最后登录
    1970-1-1
    发表于 2013-7-16 23:46:50 | 显示全部楼层

    回复:关于DG128AD转换后寄存器的值一直不变的问题

     看看是否读取了正确的结果寄存器。非FIFO模式下,如果是单通道转换,那么无论是哪个通道,转换结果始终存在ATDDR0中。如果是多通道转换则转换结果按通道的顺序依次存在结果寄存器ATDDR0开始的连续的几个寄存器中。如果你启动了1、2两个通道,那转换结果依次存在ATDDR0和ATDDR1中。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    21

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    1970-1-1
     楼主| 发表于 2013-7-17 09:37:26 | 显示全部楼层

    回复:关于DG128AD转换后寄存器的值一直不变的问题

    回复第 8 楼 于2013-07-16 23:46:50发表:
     看看是否读取了正确的结果寄存器。非FIFO模式下,如果是单通道转换,那么无论是哪个通道,转换结果始终存在ATDDR0中。如果是多通道转换则转换结果按通道的顺序依次存在结果寄存器ATDDR0开始的连续的几个寄存器中。如果你启动了1、2两个通道,那转换结果依次存在ATDDR0和ATDDR1中。
     
    是的,我知道,这个,但是读的0寄存器的值是255,不正确呢
     
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 12:14 , Processed in 0.101991 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表