我们使用 driverlib 对 UCS 和 Timer1_A3进行编程,以生成 PWM 输出。 我们预计 PWM 周期为200US,但当我们使用示波器检查 PWM 频率时,我们测量值为100US。 这表明计时器的计时速度是我们预期的两倍,您可以检查下面的驱动程序库呼叫。 如果这些问题看起来正确,请告诉我是否有办法在针脚处观察 SMCLK 以验证其频率。
UCS 安装代码:
UCS_initClockSignal(
UCS_FLLREF,
UCS_REFOCLK_SELECT,
UCS_CLOCK_DIVIDER_1);
UCS_initClockSignal(
UCS_ACLK,
UCS_REFOCLK_SELECT,
UCS_CLOCK_DIVIDER_1);
UCS_initFLLSettle(
16000000/1000,
16000000/32768);
来自 CCS 的 UCS 寄存器:
PWM 设置代码:
Timer_A_outputPWMParam initPwmParam = {0};
initPwmParam.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;
initPwmParam.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;
initPwmParam.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;
initPwmParam.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;
initPwmParam.dutyCycle = 1600U; //default to 50% duty cycle
initPwmParam.timerPeriod = 3200U; //200uS
Timer_A_outputPWM(TIMER_A1_BASE, &initPwmParam);
来自 CCS 的 TimerA1寄存器: