|
下面是我写的一段代码?我想用1602显示AD值,unsigned int AD_capture(unsigned char s)这个函数是要采集那个通道的AD,显示在LCD的结果是只有AD0的是动态的,就是
说是while(1)中不断执行采集AD,但是其他通道的就是一直不动啊。。。。我是想就采集了一次,我吧AD0接到不同的电压会变的,其他通道就还是不变,,,好纠结啊
是不是AD初始化什么地方配置的不对呢?????真心希望大家一起讨论讨论~~~是哪里与问题呢???
#include <msp430x14x.h>
#include"1602.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 int AD_in0,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)
{ uint i;
P6SEL&=0X00;
P6SEL|=0XFF;
P6DIR&=0X00;
ADC12CTL0 &= ~ENC;//设置ENC为0,从而修改ADC12寄存器的值,只有其为零时,才可以修改
ADC12CTL0|=REFON+REF2_5V+ADC12ON+SHT0_2; //参考电压开,选择2.5V
ADC12CTL1|=SHP;
ADC12MCTL0 |= INCH_0;
ADC12MCTL1 |= INCH_1;
ADC12MCTL2 |= INCH_2;
ADC12MCTL0|=0X10; //选择基准源
for ( i=0; i<0x3600; i++) ; //延时等待基准源确定
ADC12MCTL1|=0X10;
for (i=0; i<0x3600; i++) ;//选择基准源
ADC12MCTL2|=0X10;
for (i=0; i<0x3600; i++) ;//选择基准源
ADC12CTL0|=ENC ; //使能AD转换
}
/*************************************************************/
/* 起动AD转换 */
/*************************************************************/
unsigned int AD_capture(unsigned char s)
{
unsigned int AD_data;
switch(s)
{
case 0:
ADC12CTL0|=ADC12SC; //开始转换AD00
while((ADC12CTL1 & 0X01) ==1);//等待转换完毕
AD_data = ADC12MEM0; //读取AD0
break;
case 1:
ADC12CTL0|=ADC12SC; //转换AD01
while((ADC12CTL1 & 0X01) ==1); //等待转换完毕
AD_data = ADC12MEM1; //读取AD1
break;
case 2: //转换AD02
ADC12CTL0|=ADC12SC;
while((ADC12CTL1 & 0X01) ==1); //等待转换完毕
AD_data = ADC12MEM2; //读取AD1
break;
}
return(AD_data);
}
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
Clock_Init();
IO();
INIT_AD();
yj1602();
while(1)
{
AD_in0 = AD_capture(0); //只有通道0 这个可以显示动态的
ad_show(0,AD_in0);
AD_in1 = AD_capture(1); //其他通道是不动的,就是采集一次就没采集了吗?
ad_show(6,AD_in1);
}
}
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|