ADC 采样设置问题

2019-07-22 16:54发布

采样程序如下,copy的是TI的例程。
  P6SEL = 0x0F;                             // Enable A/D channel inputs
  ADC12CTL0 = ADC12ON+MSC+SHT0_2;           // Turn on ADC12, set sampling time
  ADC12CTL1 = SHP+CONSEQ_1;                 // Use sampling timer, single sequence
  ADC12MCTL0 = INCH_0;                      // ref+=AVcc, channel = A0
  ADC12MCTL1 = INCH_1;                      // ref+=AVcc, channel = A1
  ADC12MCTL2 = INCH_2;                      // ref+=AVcc, channel = A2
  ADC12MCTL3 = INCH_3+EOS;                  // ref+=AVcc, channel = A3, end seq.
  ADC12IE = 0x08;                           // Enable ADC12IFG.3
  ADC12CTL0 |= ENC;   
我的疑问是
①  P6SEL = 0x0F;                             // Enable A/D channel inputs
这句话不管我怎么设置都可以进入采样中断,这句话不是应该是设置相应的引脚后面才可以进行采样的么?为什么当我默认时或者我设置为0x00的时候也可以进入?
② ADC12IE = 0x08;                           // Enable ADC12IFG.3
这句话是使能相应的中断位,允许进入中断,我的理解是允许P6.3可以进入中断,那P6.0,P6.1,P6.2呢?我调试的时候发现都是在采样的,ADC12IE = 0x01;                           // Enable ADC12IFG.1,这句是使能P6.0的,那在给通道使能的时候是使能序列通道的最后一位还是将用到的所有位都使能?
③采样通道有16个这么多,例程给出的是单通道和序列通道,那如果不是序列通道,如果开多通道,且
A0,A1,中间几个不用,后面继续用到A4,A5,固然可以不这么用,但是如果要这样做的时候,该如何设置?关于这个我自己有一个想法,就是P6SEL=0x22;是否可行,请大大明示。
④关于通道选用,我发现当我把A0,A1两句注释掉,通道设置写成这样:
//ADC12MCTL0 = INCH_0;                      // ref+=AVcc, channel = A0
//ADC12MCTL1 = INCH_1;                      // ref+=AVcc, channel = A1
  ADC12MCTL2 = INCH_2;                      // ref+=AVcc, channel = A2
  ADC12MCTL3 = INCH_3+EOS;                  // ref+=AVcc, channel = A3, end seq.
这时候发现A0,A1采样还是继续的,这是为什么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
zijingzelan001
1楼-- · 2019-07-23 14:36
 精彩回答 2  元偷偷看……
zijingzelan001
2楼-- · 2019-07-23 16:40
vibra2016 发表于 2016-5-9 20:15
这个参考电压的设置是很重要的。

是的,参考电压可以根据资料来设置
zijingzelan001
3楼-- · 2019-07-23 19:49
感觉 dirtwillfly 大大讲的很清楚,帖子再晚点结贴好了,也可以让大家继续留言,相互学习
Varus
4楼-- · 2019-07-24 00:17
ADC对应通道的问题容易让人迷糊啊,多研究用户手册吧

一周热门 更多>