This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430 FR4133

Guru**** 2589300 points
Other Parts Discussed in Thread: MSP430FR4133

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/684006/msp430-fr4133

主题中讨论的其他器件:MSP430FR4133

您好!

我最近在 MSP430FR4133的 TI 示例中遇到了问题。 我尝试使用 ADC 对单独引脚上的电压进行采样。 和尝试使用 ADC 逐个在 p1.3和 p1.4上采样一样。

执行此操作时、它要么只对第一个端口进行采样、要么根本不进行采样。 我附上了我的代码、希望有人可能会对它出现的问题有所了解。  

#include 
#include 

int adc_result;
int flag;
int senso;
int sensor[2];

int main (void)
{
WDTCTL = WDTPW | WDTHOLD;

ADCCTL0 |= ADCSHT_2 | ADCON;
ADCCTL1 |= ADCSHP| ADCCONSEQ_1;
ADCCTL2 |= ADCRES;
ADCMCTL0 |= ADCSREF_1;
ADCIE |=ADCIE0;

PM5CTL0 &=~LOCKLPM5;

PMMCTL0_H = PMMPW_H;
PMMCTL2 |= INTREFEN;
_DELAY_CYCLES (400);


flag =0;



while (1)
{


if (flag = 0){
ADC_DisableConversions (ADC_base、ADC_COMPLETECONVERSITION);
ADCIV = ADCIV_NONE;
ADCMCTL0 |= ADCINCH_3;
_DELAY_CYCLES (1000);

flag=1;

}

否则、如果(flag == 1)
{
ADC_DisableConversions (ADC_base、ADC_COMPLETECONVERSITION);
ADCIV = ADCIV_NONE;
ADCMCTL0 |= ADCINCH_4;
_DELAY_CYCLES (1000);

flag=0;

}


ADCCTL0 |= ADCENC | ADCSC;
_bis_SR_register (LPM0_bits | GIE);


}

}

#pragma vector=ADC_vector /
__interrupt void ADC_ISR (void)
{
switch (__even_in_range (ADCIV、ADCIV_ADCIFG)
){
// ADCIV =用于确定的 ADC 中断向量寄存器
//启用 ADC 中断源请求中断
ADCIV_ADCIFG 案例: //转换完成时设置 ADC 中断标志寄存器
{
// ADCIFG0通过读取自动复位
// ADCMEM0寄存器或可由软件复位。


if (flag==0)
{
SENSOR[0]=ADCMEM0;

}

否则 if (flag==1)
{
SENSOR[1]=ADCMEM0;

}
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits);


}



中断;
}



我们将感谢您的任何帮助。

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gary、
    我将对此进行研究、并将在明天提供一些反馈。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    > ADCMCTL0 |= ADCINCH_3;
    > ADCMCTL0 |= ADCINCH_4;
    第二行(第二次转换)设置 inch=(4|3)=7、并且保持不变。 我建议(针对每种形式)采取以下措施:
    > ADCMCTL0 = ADCINCH_3| ADCSREF_1;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bruce、您好!
    非常感谢!!!!
    我也遇到了同样的问题、但在阅读完您的回复后、我有了一些想法、现在我至少可以按顺序读取多个通道的时间。