新手自己在实验a/d转换,找不出问题(已解决,谢谢)

2019-03-24 09:47发布

本帖最后由 chi80929 于 2015-9-18 10:57 编辑

大家早,小弟自学msp430f169,
在练习下列这个实验,但我要亮的p1.0的led始终没反应,
却是开发版内建好的p6.0led在亮灭(我知道因为它和vr并连)。
想破头也不知道哪裡出错,导致p1.0没动作,

希望高手指导我哪裡有问题。小弟感激各位!

除了红笔框的,其他都是我自个儿接的。
螢幕快照 2015-09-17 上午10.18.22.png

/************************************************************************
单通道单次转换,选择AVcc为参考电压
检测P6.0引脚电压,如果小于0.5AVcc,
择点亮连接至P1.0的LED,否则LED灭    ~採用中断方式
*************************************************************************/


#include <msp430x16x.h>

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;
  ADC12CTL0 = SHT0_2 + ADC12ON;  //设定採样时间,打开ADC12,n=4
  ADC12CTL1 = SHP;  //单通道单次转换,使用採样定时器,选择同相输入
                                     //ADC12SC,ADC12内部CLOCK

  ADC12IE = 0x01;  //使能转换中断
  ADC12CTL0 |= ENC;  //使能转换器
  P6SEL |= 0x01;  //P6.0为A/D通道AD0
  P1DIR |= 0x01;  //P1.0 输出

  while(1)
  {
    ADC12CTL0 |= ADC12SC;  //开启採样
  }
}

#pragma vector = ADC_VECTOR
__interrupt void ADC12_deal (void)
{
  if(ADC12MEM0 < 0x7FF)
    P1OUT &=  ~0x01;  //清0   P1.0 LED亮
   else
     P1OUT |= 0x01;  //置1    P1.0  LED灭
}


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
elvike
1楼-- · 2019-03-26 14:50
程序比较简单,可以单步一下,看下执行过程,我觉得是采样值不对,导致led的翻转语句没有执行。电路问题不大
danielzhou
2楼-- · 2019-03-26 17:33
 精彩回答 2  元偷偷看……
chi80929
3楼-- · 2019-03-26 21:26
elvike 发表于 2015-9-17 17:43
程序比较简单,可以单步一下,看下执行过程,我觉得是采样值不对,导致led的翻转语句没有执行。电路问题不 ...

我电路检查过是没问题的,我现在在查看到底ad转换的程序是哪裡没弄好
chi80929
4楼-- · 2019-03-27 01:41
danielzhou 发表于 2015-9-18 08:35
那应该和电路没什么关系,看看你的AD此刻读到的值是多少,用万用表实测P6.0的电压,看是否一致,然后再一 ...

好的我再试试,有进展或有问题再通知各位大神,谢谢!
chi80929
5楼-- · 2019-03-27 03:07
 精彩回答 2  元偷偷看……
saber20150919
6楼-- · 2019-03-27 03:38

一周热门 更多>

相关问题

    相关文章