|
本帖最后由 xunke 于 2014-3-14 15:05 编辑
请高手帮忙看一下,T若定义成int结果就出错、结果总是为FFXX、高8位错了、低8位是对的,如果定义成char 结果就没错了,不知那里问题?下面程序在IAR5调试是通过。
//环境:IAR5.6、launchpad ,,MCU:MSP430G2231,系统时钟:VLO
//功能:读取MCU内部温度传感器,并且温度值用十进制表示。
#include "msp430g2231.h"
int T;
void ADC10_temp()
{
ADC10CTL0 = SREF_1 + REFON + ADC10SR + ADC10ON;
ADC10CTL1 = INCH_10 + ADC10SSEL_1 + CONSEQ_0;
ADC10CTL0 |= ENC + ADC10SC;
while( ADC10CTL1& ADC10BUSY );
ADC10CTL0 &= ~ADC10IFG;
T = ADC10MEM*423/1024 - 278;
}
//==================
main()
{
WDTCTL = WDTPW + WDTHOLD;
//系统时钟选VLO
BCSCTL3 = LFXT1S_2;
while( IFG1 & OFIFG ){ IFG1 &= ~OFIFG; }
BCSCTL2 = SELM_3 + DIVM_0;
ADC10_temp();
while(1);
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|