我有关于 MSP430代码的一些问题、我使用 p1.0连接了红外传感器、所以我只想确定 p1.0是高电平还是低电平、然后让 p1.7生成不同的占空比 PWM、即高电 平下为7.5%、低电平下为13%。
但结果是、即使传感器产生0和1个输出、P1.7也只产生7.5%的 PWM。
这是我的代码、
#include
空 main (void)
{
WDTCTL = WDTPW + WDTHOLD; //停止看门狗计时器
//将 P1.0配置为启用下拉电阻的输入模式
P1DIR &&~BIT0; // P1.0输入模式
P1REN |= BIT0; // P1.0上拉/下拉电阻已启用
P1OUT &=~Ω BIT0; // P1.0下拉电阻器被启用
//将 P1.7配置为输出模式
P1DIR |= BIT7; // P1.7输出模式
P1SEL |= BIT7;
//设置 Timer_A0
TA0CCR0 = 20000; //设置 Timer_A0上限值
TA0CTL = TASSEL__SMCLK + MC__UP + TACLR; //选择 SMCLK 作为时钟源、向上计数模式、清除 Timer_A0计数器
TA0CCTL1 = OUTMOD_7; //设置 PWM 的输出模式7
while (1)
{
IF (P1IN 和 BIT0)// P1.0高输入状态
{
TA0CCR1 = 2600;// 13%占空比
}
否则// P1.0低输入状态
{
TA0CCR1 = 1600;// 8%占空比
}
}
}
谢谢