主题中讨论的其他器件:TIDM-THREEPHASEMETER-F6779
我正在开发2级电动汽车充电器的代码。 我正在使用三相功率计(TIDM-THREEPHASEMETER-F6779)中的示例代码。
我正在使用计时器2生成 PWM 信号、如下面的代码所示。 我正在尝试以5%的占空比测量 PWM 信号的电压。 下图顶部显示了 PWM 信号、底部显示了一个引脚、我将进行切换以显示 ADC 何时对 PWM 信号进行采样。
为什么 每次计时器到达 TA2CCR0时 TIMER2_A0中断不会触发? 当 PWM 信号从低电平变为高电平时、TIMER2_A0中断是否不应该立即触发?
是否有更好的方法可以测量 PWM 信号的电压?
/*设置初始 PWM 周期1kHz */
TA2CCR0 = 16685 - 1;//32786Hz 时钟除以2、并具有一些失调电压。 -1来自计时器从0开始计数、而不是1。
/* CCR0复位/置位*/
TA2CCTL1 = OUTMOD_7;
TA2CCTL0 = CCIE;// CCR0中断被启用
电流额定值= 5.0;
CURRENT_RA定值= CURRENT_RA定值/ 100.0;
TA2CCR1 = 16685.0 * CURRENT_RA定值;
/* SMCLK、向上计数模式、清除 TAR */
TA2CTL = TASSEL_2 | MC_1 | TACLR | TAIE;
/***** 启用导线 PWM **** /
P11DIR |= BIT3;
P11SEL0 |= BIT3;
P11OUT &=~BIT3;
#pragma vector=TIMER2_A0_vector
__interrupt void Timer2_ISR (空)
{
P9OUT ^= BIT0;//切换引脚
ADC10CTL0 |= ADC10ENC + ADC10SC;
}
感谢您的帮助。
Mike