您好,TI社区:
感谢您对设备的支持。 我正在对MSP430进行编程,并且希望将WFP 1.6 配置为读取数字输入。 我设置了分压器,在开关打开时给我3V电压,在开关关闭时给我0V电压。 我将WFP 1.6 配置为输入,P1DIR寄存器,P1OUT位6至零(用于选择下拉)和P1REN位6至1 (用于启用下拉/上电阻)。 问题是我总是得到一个零,尽管我在输入上施加了电压。 我的代码是否有问题?
祝你一切顺利,
Luiz Moreira
#include <MSP4S.h>
内部主(无效)
{
WDTCTL = WDTPW | WDTHOLD;//停止WDT
//配置GPIO
P1DIR = 0b1000.1万;//|= BIT3 | BIT7;//输出
P1REN = 0b100万;
P1OUT = 0b0.1万;//|= BIT3;
//禁用GPIO开机默认高阻抗模式以激活
//以前配置的端口设置
PM5CTL0 &=~LOCKLPM2;
//时钟
CSCTL0_H = CSOKEY >> 8;//解锁CS寄存器
CSCTL1 = DCOFSEL_0;//DCO em 1 MHz
CSCTL2 =拉美_ VLOCLK | SESS_ DCOCLK | SELM_ DCOCLK;//SMCLK em 1 MHz
CSCTL3 = DIFS_0;
//定时器A
TA0CCTL0 = CCIE;//已启用TACR0中断
TA0CCR0 = 1000;
TA0CTL = tassel__SMCLK | MC__UP;// SMCLK,UP模式
//配置ADC12
ADC12CTL0 = ADC12SHT0_2 | ADC12ON;//采样时间,S&H = 16,ADC12开
ADC12CTL1 = ADC12SHP;//使用采样计时器
ADC12CTL2 || ADC12RES_2;// 12位转换结果
ADC12MCTL0 |= ADC12INCH_1;// A1 ADC输入选择;Vref=AVCC
ADC12IER0 |= ADC12IE0;//启用ADC转换完成中断
同时(1)
{
IF ((P1IN & BIT6)=1){
P1OUT = 0b1000万;//|= BIT7;
}
否则IF ((P1IN & BIT6)==0){
P1OUT = 0b0万;//|= BIT7;
}
__DELAY周期(5000);
ADC12CTL0 || ADC12ENC | ADC12SC;//开始采样/转换
__bis_sr_register (LPM0_bits + GIE);
__no_operation();//用于调试器
}
}