打印

MSP430 AD转换问题

[复制链接]
3605|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangguangaisha|  楼主 | 2011-12-17 21:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
yangguangaisha|  楼主 | 2011-12-17 21:20 | 只看该作者
程序如下:
//********************************************
//功能:AD采样 上位机显示结果
//采样通道======>>6.0
//串口:3.4=>TX 3.5=>RX
//*******************************************
#include
void delay(int x)
{
for(int i=0;i<80;i++)
for(int j=0;j }
//********************************************
//功能:上位机显示数据
//********************************************
void serial_tx(double data,int i)
{
char x;
x = (int)data + '0';
while (!(IFG1 & UTXIFG0));
TXBUF0 = x;
while (!(IFG1 & UTXIFG0));
TXBUF0 = '.';
for(int j=0;j {
data = (data-(int)data)*10;
x = (int)data + '0';
while (!(IFG1 & UTXIFG0));
TXBUF0 = x;
}
while (!(IFG1 & UTXIFG0));
TXBUF0 = '#';
}
//*******************主函数********************
void main(void)
{
double data_AD;
WDTCTL = WDTPW + WDTHOLD;
//////////////////////////////////////////////////////////////////////////
BCSCTL1 &= ~XT2OFF; //开启XT2 8M晶振//
do
{
IFG1 &= ~OFIFG;
for(int i=0xff;i>0;i--);
}
while((IFG1 & OFIFG)!=0);
BCSCTL2 |= SELM_2+SELS;
//////////////////////////////ADC设置/////////////////////////////////////
P6SEL |= 0X01;
ADC12CTL0 = SHT0_2; //4分频
ADC12CTL1 = SHP;
ADC12MCTL0 = SREF_2; //参考电源选择Vr+=AeREF+ 输入通道为6.0
ADC12CTL0 |= ADC12ON + ENC; //开ADC + 允许转换
////////////////////////////////串口初始化////////////////////////////////
P3SEL |= 0x30; // P3.4,5=> TXD/RXD
UCTL0 |= SWRST; // 置1
ME1 |= UTXE0 + URXE0; // 使能
UCTL0 |= CHAR; // 8字节 UART
UTCTL0 |= SSEL0; // 32k
UBR00 = 0x03; // 32K 9600bps
UBR10 = 0x00; // 32K 9600bps
UMCTL0 = 0x4A; // 32K 9600bps 校正s
UCTL0 &= ~SWRST; // 置0
IE1 |= URXIE0; // 允许中断
_EINT();
//////////////////////////////////////////////////////////////////////////
while(1)
{
ADC12CTL0 |= ADC12SC;
while((ADC12IFG&BIT0)==0);
data_AD = ADC12MEM0*3.2/0xfff;
serial_tx(data_AD,3);
delay(5000);
}
}

使用特权

评论回复
板凳
锋康123| | 2011-12-17 21:30 | 只看该作者
有没有看过参考电压引脚的电平,以及你的模拟地的电平?

使用特权

评论回复
地板
永远的不知| | 2011-12-18 15:56 | 只看该作者
个人认为可能的原因,
一是考虑硬件电压方面,单片机的AD参考电压,AD采样的电压以及测试仪器的误差,是否会造成0.3V的误差;
二是考虑软件方面,采样的电压是否稳定,程序是不是需要增加一些滤波的算法。

使用特权

评论回复
5
tianm| | 2011-12-19 08:44 | 只看该作者
4# 永远的不知

楼上说的对 硬件、软件都要检查

使用特权

评论回复
6
sqcumt123| | 2011-12-19 10:18 | 只看该作者
4楼说的很有道理,楼主可以参考一下,应该能解决这个问题

使用特权

评论回复
7
娃娃啊哇| | 2011-12-20 16:49 | 只看该作者
学习一下

使用特权

评论回复
8
andyhere| | 2011-12-20 16:53 | 只看该作者
不错,可以参考一下

使用特权

评论回复
9
Rancho13502| | 2013-4-26 11:43 | 只看该作者
是不是供不足

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

168

主题

1522

帖子

3

粉丝