社区导航

 

搜索
查看: 7000|回复: 12

[LaunchPad] msp430g2553 AD多通道单次转换程序

[复制链接]

31

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-7-21 22:34 | 显示全部楼层 |阅读模式
unsigned int result[4];
void init_ADC10()
{   
  P1SEL|=BIT0+BIT3+BIT4+BIT5;   
  ADC10AE0|=BIT0+BIT3+BIT4+BIT5; // 使P1.0允许AD模拟输入信号
  ADC10CTL0=ADC10ON+MSC+SREF_0;//+REFON  开AD内核,选择电源为参考电压
  ADC10CTL1=ADC10SSEL_0+CONSEQ_0; //+INCH_1+INCH_2 选择ADC12SC为触发源,选择系统时钟为AD内核时钟,采用单通道多次采用
  
}
void start_ADC10()
{
  ADC10CTL1|=INCH_0;
  ADC10CTL0|=ADC10SC+ENC;     // 开始转换  开转换允许  
  while(ADC10CTL1&ADC10BUSY!=0);//判断是否转换完毕
  result[0]= ADC10MEM;
  //printf("%d\n",result[0]);
  ADC10CTL0&=~(ADC10SC+ENC);  //关转换允许才能选择通道
  ADC10CTL1&=~INCH_0;         //通道清0
  ADC10CTL1|=INCH_3;
  ADC10CTL0|=ADC10SC+ENC;
  while(ADC10CTL1&ADC10BUSY!=0);
  result[1]= ADC10MEM;
  //printf("%d\n",result[1]);
  ADC10CTL0&=~(ADC10SC+ENC);
  ADC10CTL1&=~INCH_3;  
  ADC10CTL1|=INCH_4;
  ADC10CTL0|=ADC10SC+ENC;
  while(ADC10CTL1&ADC10BUSY!=0);
  result[2]= ADC10MEM;
  ADC10CTL0&=~(ADC10SC+ENC);
  ADC10CTL1&=~INCH_4;  
  ADC10CTL1|=INCH_5;
  ADC10CTL0|=ADC10SC+ENC;
  while(ADC10CTL1&ADC10BUSY!=0);
  result[3]= ADC10MEM;
  ADC10CTL0&=~(ADC10SC+ENC);
  ADC10CTL1&=~INCH_5;  
  //printf("%d\n",result[2]);
}

回复

使用道具 举报

2235

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2012-7-22 21:37 | 显示全部楼层
呵呵……有助于我发现自己的错误 ,参考下,谢谢

回复

使用道具 举报

37

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-7-23 08:37 | 显示全部楼层
问一下哈,430中能用printf不啊?

回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-7-23 22:43 | 显示全部楼层
上面程序第七行改为ADC10CTL1=ADC10SSEL_0+CONSEQ_1(多通道单词转化)怎么弄呢  高手指点!!!!!!

回复

使用道具 举报

51

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-7-25 20:29 | 显示全部楼层
XIEIE楼主

回复

使用道具 举报

18

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-7-27 09:11 | 显示全部楼层

楼主 忽悠

LZ  你只是把  单通道 单次转换  连着用而已啊。

回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-7-30 05:38 | 显示全部楼层

楼主是忽悠吧?

我也觉得是单词转换重复利用了,但我也没有办法。adc12的那个还好,转环结果有多个寄存器,adc10就不晓得老。

回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-8-11 16:58 | 显示全部楼层
楼主
P1SEL|=BIT0+BIT3+BIT4+BIT5;   
ADC10AE0|=BIT0+BIT3+BIT4+BIT5; // 使P1.0允许AD模拟输入信号
这不是也将P1.3  P1.4  P1.5选为AD模拟输入信号端了吗?

回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2014-5-19 21:18 | 显示全部楼层
真心不错

回复

使用道具 举报

18

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2014-7-11 10:06 | 显示全部楼层
敲进去好像不能用

回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2014-12-29 20:44 | 显示全部楼层
你这怎么不纯粹的多通道转换 , 把多通道分为单通道单个转换,可是可以 但是不是我们要的 序列通道转换。

点评

的确是,我搞了很久的ADC10,用多通道多次采样DTC,一次读取然后产生中断,但是每次数据与前一次不一样,去TI官网问了,也没个正经回答,兄弟,你的搞出来了吗?可以借鉴下不?  详情 回复 发表于 2015-5-10 16:35

回复

使用道具 举报

65

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-5-10 16:35 | 显示全部楼层
HEXIAOLONG123 发表于 2014-12-29 20:44
你这怎么不纯粹的多通道转换 , 把多通道分为单通道单个转换,可是可以 但是不是我们要的 序列通道转换。

的确是,我搞了很久的ADC10,用多通道多次采样DTC,一次读取然后产生中断,但是每次数据与前一次不一样,去TI官网问了,也没个正经回答,兄弟,你的搞出来了吗?可以借鉴下不?

回复

使用道具 举报

65

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-5-10 16:37 | 显示全部楼层
请问下,多通道多次采样,该怎么办?我试过官方给的程序也是不行的,每次采样值产生中断后不一样的数据。。。通道不是连续的(如A7和A5)这种,用DTC该怎么办?求解答,谢谢

回复

使用道具 举报

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

关闭

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

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-23 09:01 , Processed in 0.384290 second(s), 18 queries , Gzip On, MemCache On.

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