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

高手们来讨论下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选择环绕通道(在多通道的情况下)是什么概念呢?
万分感谢大家的支持和帮助谢谢!!- /************************************************
- ATD 初始化程序
- ************************************************/
- void ATD_init(void)
- {
- ATD1CTL0=0x00;//未选择AD循环通道
- ATD1CTL1=0x00;//没有外部触发源
- ATD1CTL2=0x80;//AD普通工作模式,不使用中断标志位快速清零(CCF),
- //禁止AD转换完成中断,清零AD转换完成中断标志位
- ATD1CTL3=0x38;//转换队列长度7,在仿真模式下转换完成后冻结
- ATD1CTL4=0x80;//采用8位转换,AD转换时钟分频为32;
- ATD1CTL5=0x00;//左对齐,无符号数,单通道采集,初始选择AN0通道
- //ATDSTAT0状态寄存器 记录转换完毕通道,是否队列转换
- 完成
- }
- void ATD_Sample(void)
- {
- ATD1CTL5=0x84;//右对齐,无符号数,单通道采集,初始选择AN4通道
- Tape_Value=0;
- while(!ATD1STAT0_SCF);
- Tape_Value+=ATD1DR0L;
- Tape_Value+=ATD1DR1L;
- Tape_Value+=ATD1DR2L;
- Tape_Value+=ATD1DR3L;
- Tape_Value+=ATD1DR4L;
- Tape_Value+=ATD1DR5L;
- Tape_Value+=ATD1DR6L;
- Tape_Value=Tape_Value/7;
- }
复制代码--------------------------------------------------------------------------------------------------------
恭喜!本帖已由超级版主[kaduo521]于2010年2月26日在中电网论坛做2级置顶! 此帖可做为大家发求助帖、讨论帖的范例。继续努力噢!
[注]
推荐此信息仅出于传递更多信息之需要,并不代表本网赞同其观点和对其真实性负责。
|
-
1
评分次数
-
|
|
|
|
|
 
- UID
- 805034
|
[quote]第一个问题:第一通道采集完成后,是如何进入下一个通道的(通过CC,CB,CA重新设置)?
当MULT=1时,进入多通道采样模式。第一个进行采样的通道由CD、CC、CB和CA的值设定。而下一个通道则是顺序递增的那个通道。比如 ...
strongchen 发表于 2010-2-24 10:12 [/quoted]
过了一夜终于有答案了,万分感谢;关于这个问题,版主的列子是连续的通道,假如不是连续的通道是否可行?如第一个通道是AN5,第二是个AN7,第三个是AN11,是否可以进行?还是一定要在单一通道模式下自己切换? |
|
|
|
|
|
 
- UID
- 805034
|
本帖最后由 mcu2007 于 2010-2-25 09:10 编辑 第二个问题:在多通道的情况下是每个通道都进行S8C,S4C,S2C,S1C设置的转换次数吗?
不是。在多通道采样模式下,每个通道只进行一次采样和转换,S8C~S1C决定每次要对多少个通道进行转换。
我们把这称为一个序列。一 ...
strongchen 发表于 2010-2-24 10:36  这个问题。。如果我设置的序列比实际的转换通道要大会有什么问题吗?
考虑了一天我想如果设置过大估计会导致个别通道采集次数会增加! |
|
|
|
|
|
 
- UID
- 805034
|
第三个问题:如果我使用单一通道模式进行采集,但是我要在多个通道之间进行切换,请问这个通道切换是否要考虑硬件延迟(即要几个机器指令周期之后才进入下一个通道的转换)?
这时最好检测ATDSTAT0的SCF标志位,当上 ...
strongchen 发表于 2010-2-24 10:41  这个比较明白,但是是否要考虑通道切换硬件操作的时间,还是切换通道后就直接可以开始转换了? |
|
|
|
|
|
 
- UID
- 805034
|
谢谢,版主的热心回答,万分感谢! |
-
1
评分次数
-
|
|
|
|
|
 
- UID
- 805034
|
支持一下
kaduo521 发表于 2010-2-26 09:35  受宠若惊啊,呵呵
个人只是觉的技术大家是迟早要了解和掌握到的,所以没什么好保留的,也只是举手之劳! |
|
|
|
|
|