首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

高手们来讨论下ATD的MULT使用(更新了程序) [已解决][此贴置顶已久麻烦版主取消置顶]

高手们来讨论下ATD的MULT使用(更新了程序) [已解决][此贴置顶已久麻烦版主取消置顶]

本帖最后由 mcu2007 于 2010-5-5 15:50 编辑

我用的是9S12XDG128
我看datasheet时发现,这个片子的AD可以自动对单一AD口进行多次采集(真方便,比我用PIC8位爽);但是如果MULT=1时进入多个通道采集模式,然后CC,CB,CA来选择第一个进行转换的通道,如果第一通道转换完成后,如何进入下一通道的(书上说是CC,CB,CA增加来决定,这个说的不清楚)。

问题:
1,第一通道采集完成后,是如何进入下一个通道的,(通过CC,CB,CA重新设置?书上
     说是CC,CB,CA增加来决定,这个说的不清楚,麻烦高手能详细指点下
     在进入下一个转换之前是不是数据要自己先处理?

2,在多通道的情况下是每个通道都进行S8C,S4C,S2C,S1C设置的转换次数吗?

3,如果我使用单一通道模式进行采集,但是我要在多个通道之间进行切换,请问这个通道切换是否要考虑硬件延迟(即要几个机器指令周期之后才进入下一个通道的转换),

4,在ATDCTL0里面的WARPx选择环绕通道(在多通道的情况下)是什么概念呢?

万分感谢大家的支持和帮助谢谢!!
  1. /************************************************
  2. ATD 初始化程序
  3. ************************************************/
  4. void ATD_init(void)
  5. {
  6.      ATD1CTL0=0x00;//未选择AD循环通道
  7.      ATD1CTL1=0x00;//没有外部触发源
  8.      ATD1CTL2=0x80;//AD普通工作模式,不使用中断标志位快速清零(CCF),
  9.                                //禁止AD转换完成中断,清零AD转换完成中断标志位
  10.      ATD1CTL3=0x38;//转换队列长度7,在仿真模式下转换完成后冻结
  11.      ATD1CTL4=0x80;//采用8位转换,AD转换时钟分频为32;
  12.      ATD1CTL5=0x00;//左对齐,无符号数,单通道采集,初始选择AN0通道
  13.                                //ATDSTAT0状态寄存器 记录转换完毕通道,是否队列转换
  14.                                   完成
  15. }

  16. void ATD_Sample(void)
  17. {
  18.      ATD1CTL5=0x84;//右对齐,无符号数,单通道采集,初始选择AN4通道
  19.      Tape_Value=0;
  20.      while(!ATD1STAT0_SCF);
  21.      Tape_Value+=ATD1DR0L;
  22.      Tape_Value+=ATD1DR1L;
  23.      Tape_Value+=ATD1DR2L;
  24.      Tape_Value+=ATD1DR3L;
  25.      Tape_Value+=ATD1DR4L;
  26.      Tape_Value+=ATD1DR5L;
  27.      Tape_Value+=ATD1DR6L;
  28.      Tape_Value=Tape_Value/7;
  29. }
复制代码

--------------------------------------------------------------------------------------------------------
恭喜!本帖已由超级版主[kaduo521]于2010年2月26日在中电网论坛做2级置顶!

此帖可做为大家发求助帖、讨论帖的范例。继续努力噢!

[注]


推荐此信息仅出于传递更多信息之需要,并不代表本网赞同其观点和对其真实性负责。

1

评分次数

  • yumuzi

[quote]第一个问题:第一通道采集完成后,是如何进入下一个通道的(通过CC,CB,CA重新设置)?
当MULT=1时,进入多通道采样模式。第一个进行采样的通道由CD、CC、CB和CA的值设定。而下一个通道则是顺序递增的那个通道。比如 ...
strongchen 发表于 2010-2-24 10:12 [/quoted]
过了一夜终于有答案了,万分感谢;关于这个问题,版主的列子是连续的通道,假如不是连续的通道是否可行?如第一个通道是AN5,第二是个AN7,第三个是AN11,是否可以进行?还是一定要在单一通道模式下自己切换?
本帖最后由 mcu2007 于 2010-2-25 09:10 编辑
第二个问题:在多通道的情况下是每个通道都进行S8C,S4C,S2C,S1C设置的转换次数吗?
不是。在多通道采样模式下,每个通道只进行一次采样和转换,S8C~S1C决定每次要对多少个通道进行转换。
我们把这称为一个序列。一 ...
strongchen 发表于 2010-2-24 10:36
这个问题。。如果我设置的序列比实际的转换通道要大会有什么问题吗?

考虑了一天我想如果设置过大估计会导致个别通道采集次数会增加!
第三个问题:如果我使用单一通道模式进行采集,但是我要在多个通道之间进行切换,请问这个通道切换是否要考虑硬件延迟(即要几个机器指令周期之后才进入下一个通道的转换)?
这时最好检测ATDSTAT0的SCF标志位,当上 ...
strongchen 发表于 2010-2-24 10:41
这个比较明白,但是是否要考虑通道切换硬件操作的时间,还是切换通道后就直接可以开始转换了?
谢谢,版主的热心回答,万分感谢!
1

评分次数

  • kaduo521

支持一下
kaduo521 发表于 2010-2-26 09:35
受宠若惊啊,呵呵
个人只是觉的技术大家是迟早要了解和掌握到的,所以没什么好保留的,也只是举手之劳!
返回列表