请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP-EXP430FR2433 主题中讨论的其他部件:MSP430FR2433
工具/软件:Code Composer Studio
我也有一个疑问。 在msp430fr2433的启动板上,ADC输入与微控制器中的输入位置不同。 在发射台,还在WFP 1.1 和WFP 1.7 上展示了模拟的。 但在微控制器上,它们是:WFP 1.0 ,WFP 1.1 ,WFP 1.2 ,WFP 1.3。 代码 如下所示;
#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位
中断;
默认:
中断;
}
}