Thread 中讨论的其他器件: CCStudio
您好!
我使用 MSP430F5172在具有 CCR1和 CCR2的计时器 D0上创建交错 PWM。 D0分别在增/减模式下运行、CCR1/2分别在比较模式切换复位和切换设置下运行。
PWM 正被正确交错;然而、当定时器同时启动两个输出高电平时、第一个脉冲上会出现问题、这是我们尝试避免的情况。
下面是信号的图像、其中 D0.1是 TD0 CCR1、D0.2是 TD0 CCR2。

在 TI 的 CCStudio 示例代码教程中分析这些信号时、也会发生这种现象。 是否有办法解决这个问题? 是否存在潜在的配置问题?
TI 的文档指出、此 PWM 设置非常适合两个信号不应同时处于高电平的情况、但这种启动行为无法实现目标... 这使我认为我有配置问题。
下面是设置代码。
void init_timers(void)
{
struct s_TLV_Timer_D_Cal_Data * pTD0CAL; // Structure initialized in tlv.h
uint8_t bTD0CAL_bytes;
// Stop WDT
WDT_A_hold(WDT_A_BASE);
//Get TimerD0 Cal Values (instance 0)
TLV_getInfo(TLV_TAG_TIMER_D_CAL, 0, &bTD0CAL_bytes, (uint16_t **) &pTD0CAL);
if(bTD0CAL_bytes == 0x0)
{
// No TimerD free running cal data found
while(1); // Loop here
}
/*
* Configuration
*/
// Setup TD0
TD0CTL0 |= TDCLGRP_0 | CNTL_0 | TDSSEL_2 | MC__UPDOWN | ID_0 | TDCLR;
TD0CTL1 |= TDIDEX_0 | TDCLKM_1;
// Enable high resolution clock
TD0HCTL0 = TDHEN + TDHM_1;
TD0HCTL1 = pTD0CAL->TDH0CTL1_128;
// Configure CCR modes
TD0CCTL0 |= TIMER_D_OUTPUTMODE_OUTBITVALUE;
TD0CCTL1 |= TIMER_D_OUTPUTMODE_TOGGLE_RESET;
TD0CCTL2 |= TIMER_D_OUTPUTMODE_TOGGLE_SET;
// Configure latching compare thresholds
...
}
感谢你的任何帮助。
