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.

[参考译文] CCS/MSP-EXP430FR2433:我正在使用1个ADC信道,我想再使用一个ADC信道。 如何配置我的代码?

Guru**** 2587345 points
Other Parts Discussed in Thread: MSP430FR2433

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/658009/ccs-msp-exp430fr2433-i-am-using-1-adc-channel-i-want-to-use-one-more-adc-channel-how-can-i-configure-my-code

主题中讨论的其他部件:MSP430FR2433

 

各位,如下所示,这是一个简单的ADC示例。 以WFP 1.1 模拟频道1为基础,当您改变电压时,功用计会点亮和熄灭WFP 1.0 LED。 我想在这里做的

在A1和A2的同时,再使用1个ADC通道的1.2 A2通道,A2可以使WFP的1.2 灯亮起。 我想使用2个ADC信道。 我该怎么做?

 

// MSP430FR24xx演示- ADC,样品A1,AVcc参考,如果A1 > 0.5 ,则设置LED

////

说明:此示例适用于单通道单转换模式。

//在A1上制作了一个样本,默认引用AVcc。

//软件将ADCSC设置为开始采样和转换- ADCSC自动

//在EOC清除。 ADC内部振荡器使采样(16x)和转换时间变短。

//在Mainloop中,MSP430等待LPM0以节省电源,直到ADC转换完成,

// ADC_ISR将强制从reti上Mainloop中的LPM0退出。

//如果A1 > 0.5 TmAVcc,则为WFP 1.0 SET,否则重置。

// aclk =默认的REFO ~3.2768万Hz,MCLK = SMCLK =默认的DCODIV ~1MHz。

////

MSP430FR2433

// --------

// /|\\| |//

|| |//

--|RST |//

| |//

>>---|WFP 1.1 / A1.

6.0 //////



赵伟

//德州仪器(TI)

// 2014年1月

//采用IAR嵌入式工作平台v 6.20 和代码编辑器Studio v构建1.0



#include <MSP430-h>



unsigned int ADC_result;



int main(void){



WDTCTL = WDTPW | WDTHOLD; //停止WDT



//配置GPIO

P1DIR || BIT0; //将WFP 1.0 设置为输出方向

P1OUT &=~BIT0; // WFP 1.0 指示灯熄灭



//配置ADC A1引脚

SYSCFG2 || ADCPCTL1;



//禁用GPIO开机默认高阻抗模式以激活

//以前配置的端口设置

PM5CTL0 &=~LOCKLPM2;



//配置ADC10

ADCCTL0 |= ADCSHT_2 | ADCON; // ADCON,S&H=16 ADC CLKS

ADCCTL1 |= ADCSHP; // ADCCLK = MODOSC;采样计时器

ADCCTL2 |= ADCRES; // 10位转换结果

ADCMCTLS0 || ADCINCH_1; // A1 ADC输入选择;Vref=AVCC

ADCIE |= ADCIE0; //启用ADC连接完全中断



同时(1)

{

ADCCTL0 |= ADCENC | ADCSC; //开始采样和转换

__bis_sr_register (LPM0_BITS | GIE); // LPM0,ADC_ISR将强制退出

__no_operation(); //仅用于调试

IF (ADC_Result < 0x1FF)

P1OUT &=~BIT0; //清除WFP 1.0 LED关闭

否则

P1OUT |= BIT0; //将WFP 1.0 LED设置为打开

__delay_cycles(5000);

}

}//



ADC中断服务例程

#if defined(__TI_Compiler_version__)|| defined(__IAR_SYSTEMS _ICC__)

#pragma vector=ADC_vector

__interrupt void ADC_ISR(void)

#Elif defined(__GNUC__)

void __attribute__(((interrupt (ADC_vector)) AD_void)





#endif

{

SWITCH(__EIV_IN_RANGE(ADCIV,ADCIV_ADCIFG))

{

案例ADCIV_NONE:

中断;

Case ADCIV_ADCOVIFG:

中断;

Case ADCIV_ADCTOVIFG:

中断;

Case ADCIV_ADCHIIFG:

中断;

Case ADCIV_ADCLOIFG:

中断;

Case ADCIV_ADCINIFG:

中断;

问题ADCIV_ADCIFG:

ADC_Result = ADCMEM0;

__BIC_SR_REGISTER_ON_EXIT (LPM0_bits); //从LPM0中清除CPUOFF位

中断;

默认:

中断;

}

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    示例msp430fr2433_ADC_10.c,在同一文件夹中,将3个通道(A2->A0)采样到一个数组中,因此您只需将0x1FF比较添加到该数组中。

    ADC_10示例使用CONSEQ=1 (vs =0),从(ADCINCH)倒计时至A0,因此您最终从所有3个通道转换,但您可以忽略ADC_result[0](来自A0)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,我会尝试一下,