社区导航

 

搜索
查看: 1303|回复: 11

[求助] 求解430149ADC的内部参考电压2.5V设置

[复制链接]

31

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-8-10 21:01 | 显示全部楼层 |阅读模式
  P6SEL |= 0x01;                            // 使能ADC通道
ADC12CTL0 = ADC12ON+REF2_5V;              // 打开ADC,设置采样时间
  ADC12CTL0 = REFON;
  ADC12MCTL0= SREF_7;
  for(q=0;q<5;q++)    //延时25ms
  {
    Delay5ms();
  }
  ADC12CTL1 = CONSEQ_2;                     // 使用采样定时器
  ADC12IE = 0x01;                           // 使能ADC中断
  ADC12CTL0 |= ENC;                         // 使能转换
  ADC12CTL0 |= ADC12SC;                     // 开始转换


请问这设置哪有问题吗? 根本得不到任何结果1602显示没有问题,请问这个设置要怎么改


回复

使用道具 举报

1366

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2015-8-10 21:48 | 显示全部楼层
去参考该型号的TI的官方历程

回复

使用道具 举报

419

TA的帖子

5

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2015-8-10 22:29 | 显示全部楼层
先不看你能不能实现功能,就看二行句代码就错了。。位操作一定是“|=”的形式而不是“=”。不然前面设置的值,全部无效。
一别四五年,变化万千。http://home.eeworld.com.cn/static/image/smiley/comcom/5.gif[/img]

回复

使用道具 举报

31

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-10 23:18 | 显示全部楼层
jqh_111 发表于 2015-8-10 22:29
先不看你能不能实现功能,就看二行句代码就错了。。位操作一定是“|=”的形式而不是“=”。不然前面设置的 ...

很感谢你指出这个问题,可是改完之后1602显示不出电压值是怎么回事呀,做的是个电压表。。。。求解

回复

使用道具 举报

4193

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2015-8-10 23:51 | 显示全部楼层
1.首先您的“ADC12CTL0 = ADC12ON+REF2_5V;            
  ADC12CTL0 = REFON;”
其实可以写成ADC12CTL0 =ADC12ON+REF2_5V+ REFON
2.您这个可以参考下TI提供的例程的,我看了下例程中好像跟您的配置不太一样哈。

回复

使用道具 举报

368

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2015-8-11 01:03 | 显示全部楼层
你每一句都直接赋值,相当于前面的设置白设了,写寄存器一般给某一位置1要用"|=xx"给某一位置0要用“&=~”。举个例子,你要给ADC12CTL0的第1位置1,那就写成 ADC12CTL0|=0x01,如果要置0就写成 ADC12CTL0 &= ~0x01

回复

使用道具 举报

31

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-11 09:21 | 显示全部楼层
huaiqiao 发表于 2015-8-10 23:51
1.首先您的“ADC12CTL0 = ADC12ON+REF2_5V;            
  ADC12CTL0 = REFON;”
其实可以写成ADC12CTL0 ...

嗯嗯 已经改了第一个问题,可就是显示不出来,除非用3.3V参考源才对!好烦啊

点评

您的意思是Vref用3.3V的?  详情 回复 发表于 2015-8-11 09:31

回复

使用道具 举报

31

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-11 09:21 | 显示全部楼层
飞翔荷兰人号 发表于 2015-8-11 01:03
你每一句都直接赋值,相当于前面的设置白设了,写寄存器一般给某一位置1要用"|=xx"给某一位置0要用“&=~” ...

谢谢,这个问题改正了 但还是未能解决我的问题- -

回复

使用道具 举报

4193

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2015-8-11 09:31 | 显示全部楼层
莫静好实 发表于 2015-8-11 09:21
嗯嗯 已经改了第一个问题,可就是显示不出来,除非用3.3V参考源才对!好烦啊

您的意思是Vref用3.3V的?

回复

使用道具 举报

368

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2015-8-11 11:00 | 显示全部楼层
你有没有像图上那样加电容
QQ截图20150811105921.png

回复

使用道具 举报

368

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2015-8-11 11:04 | 显示全部楼层
ADC12CTL1寄存器有个ADC12SSELx用来选择ADC12的时钟源,你试试用MCLK或者SMCLK

回复

使用道具 举报

31

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-11 12:35 | 显示全部楼层
huaiqiao 发表于 2015-8-11 09:31
您的意思是Vref用3.3V的?

对 默认的 MSC 可以显示出来电压值,就是精度稀烂!!!

回复

使用道具 举报

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

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

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

GMT+8, 2020-6-7 06:04 , Processed in 0.349704 second(s), 35 queries , Gzip On, MemCache On.

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