写了一个很简单的AD转换程序,用角位移传感器作为模拟量的输入,当转换成数字量后,如果这个数字量大于一个值,P1.5接的led灯就会亮,否则不亮。但是结果没调出来,请问各位大神,这程序那里出错了。刚入手430还不太熟悉。谢谢了!
#include "msp430g2553.h"
#define uint unsigned int
#define uchar unsigned char
uint ad;
float v;
uchar flag=0;
int main( void )
{
WDTCTL = WDTPW + WDTHOLD;//停止看门狗
P1DIR|=BIT5;
ADC10CTL0 |= ADC10SHT_2 + ADC10ON;//设置采样保持时间为16xADC10CLK,打开ADC10
ADC10CTL1 |= INCH_0;//设置通道,P1.0作为采样输入通道
ADC10AE0 |= 0x01;//模拟信号输入使能
ADC10CTL0 |= ADC10IE + ENC + ADC10SC;//允许ADC10中断,ADC10转换使能,并开始转换
_EINT();//打开中断
while(!(flag));
if(ad>500)
P1OUT|=BIT5;
}
#pragma vector=ADC10_VECTOR
__interrupt void ADC10 (void)
{
ad = ADC10MEM;
// v = ad*3.3*1000/1023;
flag = 1;
}
此帖出自
小平头技术问答
一周热门 更多>