您好!
我在获取用于 msp430f5510的 ADC10中断时遇到问题。 调用函数 lectura_adc 从通道0读取值后、CPU 不会"唤醒"、因为中断不会被触发、因此无法从 ADC 获取安全值。
下面的代码...
#include
#include
#include
#include
空 init_ADC10 (空)
{
P6SEL |= BIT0 | BIT1;
ADC10CTL0 = ADC10SHT_12 | ADC10ON | ADC10IE | ADC10SREF0 | ADC10SC;
ADC10CTL1 |= ADC10SSEL_0 + ADC10SHP;
ADC10CTL2 |= ADC10RES;
}
unsigned int lectura_adc (int cCanal){
unsigned int conv = 0;
ADC10CTL0 &=~ADC10ENC;
ADC10MCTL0 = ADC10INCH0;
delay_ms (10);
ADC10CTL0 |= ADC10ENC | ADC10SC;
_bis_SR_register (CPUOFF + GIE);
CONV = ADC10MEM0;
delay_ms (10);
返回 conv;
}
#pragma vector = ADC10_vector
_interrupt void ADC10_ISR (void)
{
_BIC_SR_REGISTER_ON_EXIT (CPUOFF);
}