您好;
我需要你的帮助。 这是我第一次执行 PWM。 我找到了一些示例代码并设法获得脉冲信号。
在我的 EVM 中、XT2CLK 为24MHz。 buit I 似乎从1.4引脚获得的频率仅为366Hz。
我必须做一件非常简单的事情。 所以、请帮我... 完整代码如下所示;
#include
void main (void)
{
WDTCTL = WDTPW + WDTHOLD;
//启用 XT2 XIN/XOUT 引脚
P5SEL |= 0x0C; //在 P5.3和 P5.2上选择 XT2IN、XT2OUT
UCSCTL6 &=~XT2OFF; //启用 XT2
UCSCTL6 |= XT2DRIVE_3;//最大输出
UCSCTL3 |= SELREF_2;
UCSCTL4 = SELA_REFOCLK + 0100_DCOCLKDIV + SELM_DCOCLKDIV; //0000 0010 0100
UCSCTL0 = 0x0000;
_bis_SR_register (SCG0); //禁用 FLL 控制循环
UCSCTL1 = DCORSEL_5; //选择 DCO 范围16MHz 运行
UCSCTL2 |= 498; //将 DCO 乘法器设置为8MHz
_BIC_SR_register (SCG0); //启用 FLL 控制环路
UCSCTL5 |= DIVA__1;
UCSCTL4 = SELA_XT2CLK + SELESS_XT2CLK + SELM_XT2CLK; // SMCLK=XT2、MCLK=XT2=24MHz
//更改 UCSCTL4后,再次循环直到 XT1、XT2和 DCO 稳定(解决方法错误?)
操作
{
UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + DCOFFG);
//清除 XT2、DCO 故障标志
SFRIFG1 &=~OFIFG; //清除故障标志
} while (SFRIFG1&OFIFG); //测试振荡器故障标志
TA0CCR3 = 26000; //占空比约为45%
TA0CTL = tassel__SMCLK + ID_0 + MC_2; // SMCLK、div 1、连续模式
TA0CCTL3 = OUTMOD_7;//
//Pin1.4、TA0.3
P1OUT = 0;
P1DIR = BIT4;
P1SEL = BIT4; //将引脚模式设置为 TA0.3定时器输出
}// main
这是示波器捕获。
。
请给我一些指导...
Sukhko