#include "msp430x54x.h"
void main(void)
{
WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timer
P6SEL |= 0x01; // Enable A/D channel A0
ADC12CTL0 = ADC12ON+ADC12SHT0_2; // Turn on ADC12, set sampling time
ADC12CTL1 = ADC12SHP; // Use sampling timer
ADC12MCTL0 = ADC12SREF_2; // Vr+ = VeREF+ (ext) and Vr-=AVss
ADC12CTL0 |= ADC12ENC; // Enable conversions
while (1)
{
ADC12CTL0 |= ADC12SC; // Start conversion-software trigger
while (!(ADC12IFG & BIT0));
__no_operation(); // SET BREAKPOINT HERE
}
}
//P5.0不用申明就可以,奇怪了
这是TI的示例程序,里面用了P5.0的外部输入参考电压,但是并没有让SEL给1!奇怪的是结果还真的是以
P5.0的输入电压为基准电压,求高手解释下。
这里是因为这句话ADC12MCTL0 = ADC12SREF_2; 这个寄存器已经设置P5.0,P5.1为Vr+ = VeREF+ (ext)
Vr-=AVss 若在选择IO的功能,就有点多余了。在430中有许多这样的例子,连线时注意要用哪个IO口就可以了!
回复 4楼 whgwuhan 的帖子
分析的透彻!