|
MSP430F149中ADC模块两通道电压采集的问题
[复制链接]
根据示例程序修改的 ADC模块两通道电压采集的程序
现在的情况是两路结果均为0.00 读数也不跳动,
请大神指导。。。。。
//********************************************************************/
#include
#include "Config.h" //开发板配置头文件,主要配置IO端口信息
#include "Ascii_8x16.h" //8x16大小字符
#include "GB2424.h" //24x24像素大小的汉字
#include "Chinese.h" //16x16像素大小的汉字
#include "TFT28.h" //TFT头文件
#include "TFT28.c" //TFT操作初始化及函数
//**************声明外部函数和变量********************
unsigned int Device_code; //TFT控制IC型号,2.8寸为ILI9320
extern void delayms(unsigned int count);
static uchar Flag=0; //标志变量
uint TEMP=0; //ADC值暂存变量
uint TRY=0;
uchar temp,B5,B6,B7,A5,A6,A7; //定义的变量,显示数据处理
/********************************************************************
初始化IO口子程序,设置TFT数据口和控制口属性
********************************************************************/
void Port_Init()
{
P4SEL = 0x00;
P4DIR = 0xFF;
P5SEL = 0x00;
P5DIR|= BIT0 + BIT1 + BIT3 + BIT5 + BIT6 + BIT7;
}
/********************************************************************
LED闪烁一次,可在需要查看程序执行位置时灵活设置,类似断点
********************************************************************/
void LED_Light()
{
LED8=0x00; //点亮LED
delay_ms(500);
LED8=0xff; //熄灭LED
delay_ms(500);
}
//*************************************************************************
// 电压数据显示处理函数
//*************************************************************************
void xian_shi(void)
{
int i,j;
uint temp_1,temp_2;
ulong temp_3,temp_d;
temp_3=(ulong)(TEMP)*250; //转换公式,ADC数字量转换为电压大小,注意数据类型
temp_d=temp_3/4095; //12位精度,除以4095
A5=temp_d/100; //分出百,十,和个位
temp_1=temp_d%100;
A6=temp_1/10;
temp_2=temp_1%10;
A7=temp_2;
LCD_PutString(0,0,"The ADC0 Voltage is : ",White,Black);
for(i=0;i<10;i++)
{
delay_ms(10);
LCD_PutChar(169,0,A5+0x30,White,Black);
LCD_PutChar(177,0,'.',White,Black);
LCD_PutChar(185,0,A6+0x30,White,Black);
LCD_PutChar(193,0,A7+0x30,White,Black);
LCD_PutChar(201,0,'V',White,Black); }
temp_3=(ulong)(TRY)*250; //转换公式,ADC数字量转换为电压大小,注意数据类型
temp_d=temp_3/4095; //12位精度,除以4095
B5=temp_d/100; //分出百,十,和个位
temp_1=temp_d%100;
B6=temp_1/10;
temp_2=temp_1%10;
B7=temp_2;
LCD_PutString(0,50,"The ADC1 Voltage is : ",White,Black);
for(j=0;j<10;j++)
{
delay_ms(10);
LCD_PutChar(169,50,B5+0x30,White,Black);
LCD_PutChar(177,50,'.',White,Black);
LCD_PutChar(185,50,B6+0x30,White,Black);
LCD_PutChar(193,50,B7+0x30,White,Black);
LCD_PutChar(201,50,'V',White,Black); }
}
//********************************************************************
// ADC初始化程序,用于配置ADC相关寄存器
//*************************************************************************
void ADC_Init()
{
P6SEL|=0x03; //选择ADC通道
ADC12CTL0|= ADC12ON + SHT0_15 + REF2_5V + REFON+MSC; //ADC电源控制开,16个CLK,内部基准2.5V
ADC12CTL1|= SHP+CONSEQ_3; //SMCLK做时钟源
ADC12MCTL0= SREF0+INCH_0; //参考控制位及通道选择,这里选择通道0
ADC12MCTL1 = INCH_1+EOS;;
ADC12IE|= 0x03; //中断允许
ADC12CTL0|= ENC+ADC12SC; //使能转换器
}
//*************************************************************************
// ADC中断服务程序
//*************************************************************************
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR(void)
{
while((ADC12CTL1&0x01)==1); //如果ADC忙,则等待,否则读取ADC转换数值
Flag = 1 ;
TEMP = ADC12MEM0; //读取ADC转换值
TRY = ADC12MEM1;
}
//***********************************************************************
// 主程序
//***********************************************************************
void main(void)
{
WDT_Init(); //看门狗设置
Clock_Init(); //系统时钟设置
ADC_Init(); //初始化ADC配置
delay_ms(100); //延时100ms
Port_Init(); //系统初始化,设置IO口属性
LED_Light(); //LED点亮一次,如有现象,说明单片机初始化成功
Device_code=0x9320; //TFT控制IC型号
TFT_Initial(); //初始化LCD
CLR_Screen(Black); //用背景色清屏
LCD_PutString24(35,140,"Applied Electromagnetic",Yellow,Black); //欢迎界面,24x24大小汉字,字模软件隶书小二号
delay_ms(500);
LCD_PutString24(83,170,"欢",Yellow,Black);
delay_ms(300);
LCD_PutString24(107,170,"迎",Yellow,Black);
delay_ms(300);
LCD_PutString24(131,170,"您",Yellow,Black);
delay_ms(300);
LCD_PutString(69,300,"www.nuist.com",White,Black); //字符显示官方网站
delay_ms(300);
CLR_Screen(Black); //用背景色清屏
xian_shi();
_EINT(); //使能中断
Flag=1; //标志位先置1
while(1)
{
while(Flag==1)
{
ADC12CTL0 |= ADC12SC; //开启转换
ADC12CTL0 &= ~ADC12SC; //清零
Flag=0; //清零标志位
}
}
}
|
|