我已将系统时钟设置为120 MHz。 通过以下代码...
/*将系统时钟配置为120 MHz */
系统时钟= MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_MAIN |SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
然后尝试
/*将 timer5配置为16位 PWM 模式,具有0.5 KHz 50%占空比*。 *
MAP_TimerConfigure (TIMER5_base、(TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM));
MAP_TimerLoadSet (TIMER5_base、TIMER_A、系统时钟/500);
MAP_TimerMatchSet (TIMER5_base、TIMER_A、MAP_TimerLoadGet (TIMER5_base、TIMER_A)/2);
当我用示波器尝试时、频率未设置为500Hz/1kHz/<2khz…… 但占空比设置正确
它可以从2khz 正确设置频率...
您能不能向我推荐什么是错误的?...
随附完整的测试代码
谢谢你
/* DriverLib 包括*/
#include
/*标准包括*/
#include
#include
int main (空)
{
uint32_t systemClock;
/*将系统时钟配置为120 MHz */
系统时钟= MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、
120000000);
/*启用 GPIO 端口 M 的时钟*/
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOM);
MAP_GPIOPinConfigure (GPIO_PM6_T5CCP0);
MAP_GPIOPinConfigure (GPIO_PM7_T5CCP1);
MAP_GPIOPinTypeTimer (GPIO_PORTM_BASE、GPIO_PIN_6| GPIO_PIN_7);
/*启用 Timer5的时钟*/
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_TIMER5);
/*将每个计时器配置为16位 PWM 模式,占空比为2 KHz 66%
*循环。 *
MAP_TimerConfigure (TIMER5_base、(TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM | TIMER_CFG_B_PWM));
MAP_TimerLoadSet (TIMER5_base、TIMER_Both、systemClock/2000);
MAP_TimerMatchSet (TIMER5_base、TIMER_Both、
\
MAP_TimerLoadGet (TIMER5_base、TIMER_A)/ 3);
MAP_TimerEnable (TIMER5_base、TIMER_Both);
MAP_TimerSynchronize (TIMER5_base、TIMER_Both);
for (;;);
}
