请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C1294NCPDT 您好!
我尝试使用 PWM 模块生成 PWM 信号。 基本上、配置 PWM 所涉及的步骤很简单、但我最终得到一个信号、该信号一直保持高电平。 请在下面找到我的初始化步骤:
ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、120000000);
uint32_t period = ui32SysClock /250;/*250 Hz*/ SysCtlPeripheralEnable (SYSCTL_Periph_PWM0); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF); HWREG (GPIO_PORTF_BASE + GPIO_LO_LOCK)= 0x4C4F434B; GPIOPinConfigure (GPIO_PF0_M0PWM0); ROM_PWMClockSet (PWM0_BASE、PWM_SYSCLK_DIV_1); GPIOPinTypePWM (PWM0_BASE、GPIO_PIN_0); PWMGenConfigure (PWM0_BASE、PWM_GEN_0、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC); PWMGenPeriodSet (PWM0_BASE、PWM_GEN_0、PERIOD); PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0_BIT、(周期* 10)/ 100);/*10%*/ PWMIntEnable (PWM0_BASE、PWM_INT_GEN_0); PWMGenIntRegister (PWM0_BASE、PWM_GEN_0、pwmIsrCh0); PWMGenIntTrigEnable (PWM0_BASE、PWM_GEN_0、PWM_INT_CNT_LOAD); IntEnable (PWM0_BASE); PWMOutputState (PWM0_BASE、PWM_OUT_0_BIT、TRUE); PWMGenEnable (PWM0_BASE、PWM_GEN_0); 静态 void pwmIsrCh0 (void) { uint32_t counter_value =(10 *周期)/100; PWMGenIntClear (PWM0_BASE、PWM_GEN_0、PWM_INT_CNT_LOAD); PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0_BIT、COUNTER_VALUE); }
ISR 被成功调用。