我们使用 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寄存器: