工具/软件:Code Composer Studio
女士和绅士,
我的意思是、我已经按照"用户指南"完成了所有工作。 但它不起作用。 我想要的是、定期读取 MSP430G2553 P1.3上的值。
变量'isoll'的值始终为0。 ADC10MEM 的值始终为436 (十进制)。
此致
Franz Peter Zantis
/*
Software für Die Stromversorgung mit MSP430G2553
臂架:2. 2017年9月、F.P. Zantis
*
#include
unsigned int isoll; //Stromvorgabe
int main (void){
WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
BCSCTL1 = CALBC1_16MHz; //时钟 SMCLK=16MHz
DCOCTL = CALDCO_16MHz; //使用内部 DCO 作为时钟
P2SEL &=~BIT6; //P2.6 als 输入/输出
P2SEL &=~BIT7; //P2.7 als 输入/输出
P2DIR |= BIT6; //P2.6 als 输出
P2DIR |= BIT7; //P2.7 als 输出
P2OUT &=~BIT6; //P2.6 auf LOW;LEDrot ein
P2OUT &=~BIT4; //P2.7 auf LOW; LEDgruen ein
//ADC
P1SEL |= BIT3; //ADC 输入 über P1.3
ADC10AE0 = BIT3; //ADC 输入 A3 über P1.3 eingeschalettet
ADC10CTL1 = INCH_3; //通道3 - A3
ADC10CTL1 |= ADC10DIV_7; //ADC10CLK/8
ADC10CTL1 |= CONSEQ_2; //单通道重复转换
ADC10CTL0 = ADC10ON; //ADC 打开
ADC10CTL0 |= SREF_1; //Vref 和 VSS 引用(1、5V)
ADC10CTL0 |= REFON; //基准发生器打开
ADC10CTL0 |= ADC10SHT_3; //采样保持= 64个时钟
ADC10CTL0 |= MSC; //自动连续采样
ADC10CTL0 |= ADC10SC; //开始转换
ADC10CTL0 |= ADC10IE; //ADC 中断使能
ADC10CTL0 |= ENC; //ADC 被启用
_enable_interrupt ();
while (1)
{
if (isoll > 500)
{
P2OUT &=~BIT6; //P2.6 auf LOW; LEDrot ein
}
其他
{
P2OUT |= BIT6; //P2.6 auf 高电平;LEDrot aus
}
}
返回0;
}
#pragma vector = ADC10_vector
_interrupt void ADC10ISR (void)
{
Isoll = ADC10MEM;
}