搜索
bottom↓
回复: 0

关于AD

[复制链接]

出0入0汤圆

发表于 2012-7-11 20:10:48 | 显示全部楼层 |阅读模式
我直接想要用一个函数来进行AD转换,要那个转换那个就行了~~但是程序运行的时候AD没采集,不知道哪里的问题,求解~~
#include <msp430x14x.h>
#define uchar unsigned char
#define uint unsigned int
#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
unsigned char AD_in1,AD_in2;


void Clock_Init()
{
  uchar i;
  BCSCTL1&=~XT2OFF;                     //高速晶振开启
  BCSCTL2|=SELM1+SELS;                 //MCLK=LFXT1
  do{
    IFG1&=~OFIFG;                     //清除振荡器失效标志
    for(i=0;i<100;i++)                //稳定时间
       _NOP();
  }
  while((IFG1&OFIFG)!=0);            //检查振荡器失效标志是否存在
    IFG1&=~OFIFG;
}

void INIT_AD(void)
{  P6SEL&=0X00;
   P6SEL|=0XFF;
   ADC12CTL0 &= ~(ENC);//设置ENC为0,从而修改ADC12寄存器的值,只有其为零时,才能修改

   ADC12CTL0|=REFON+REF2_5V+ADC12ON+SHT0_2;   //参考电压开,选择2.5V,开内核
    ADC12MCTL0|=0X10;                         //选择基准源
   ADC12CTL1|=SHP;                    
   ADC12CTL0|=ENC+ADC12SC ;                  //使能AD转换
}   


/*************************************************************/
/*                        起动AD转换                         */
/*************************************************************/
unsigned char AD_capture(unsigned char s)
{
unsigned char AD_data;
switch(s)
{
  case 0:
    ADC12MCTL0 |= INCH_0;              //转换AD00
    while((ADC12CTL1&0X01)==1);     //等待转换完毕
    AD_data = ADC12MEM0;
    break;
  case 1:
    ADC12MCTL0 |= INCH_1;              //转换AD01
    while((ADC12CTL1&0X01)==1);     //等待转换完毕
    AD_data = ADC12MEM0;
    break;
   
    case 2:
    ADC12MCTL0 |= INCH_2;              //转换AD02
    while((ADC12CTL1&0X01)==1);     //等待转换完毕
    AD_data = ADC12MEM0;
    break;
}
return(AD_data);
}

void main( void )
{   
    WDTCTL = WDTPW + WDTHOLD;
    Clock_Init();
    INIT_AD();
    P3DIR|=0xff;
    P3SEL|=0X00;
    P1DIR&=0X00;
    P1SEL|=0X00;
   
   
  while(1)
    {
         AD_in1 = AD_capture(1);
         AD_in2 = AD_capture(2);
         if(AD_in1>AD_in2)
         {        
         P3OUT&=0x00;
         P3OUT|=0XEF;   
         delay_ms(100);
         }
         else
         {
           P3OUT&=0x00;
           P3OUT|=0Xdf;
           delay_ms(100);
         }
    }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-28 06:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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