请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C123GH6PM 工具/软件:Code Composer Studio
您好!
我将 PWM 用作:
SysCtlPWMClockSet (SYSCTL_PWMDIV_8); ui32PWMClock = SysCtlClockGet ()/ 8; ui32Load =(ui32PWMClock / PWM_FREQUENCY)- 1; SysCtlPeripheralEnable (SYSCTL_Periph_PWM0); SysCtlPeripheralM1 (syPBMClock / PWM0 )- 1;SysCtlPWM0GPIPB0_GPIO0_GPIPB_Configure (SYSCB_PWM0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_ GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_6); GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_7); PWMGenConfigure (PWM0_BASE、 PWM_GEN_0、PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC); PWMGenPeriodSet (PWM0_BASE、PWM_GEN_0、ui32Load); PWMGenEnable (PWM0_BASE、PWM_GEN_0); PWMOutputState (PWM0_BASE、PWM_OUT_0_BIT | PWM_OUT_1_BIT、TRUE); //发送零 PWM PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、0); PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、 0);
我可以使用示波器观察两个引脚上的波形。
问题在于:
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、ui32Load);
我不会获得完整的 PWM 输出(连续1)、但我得到0。 PWM_FREQUENCY 为18000。 如果我生成
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、ui32Load-1);
我得到接近99.9%的 PWM 波形
如何解决此问题?
编辑:
要生成 ui32Load、我有以下语句。 我确保在 Tiva-c 时钟被设定为80MHz 后运行 SysCtlClockGet。
//#define PWM_FREQUENCY 18000 #define PWM_FREQUENCY 500 volatile uint32_t ui32Load; volatile uint32_t ui32PWMClock; -- SysCtlPWMClockSet (SYSCTL_PWMDIV_8); ui32PWMClock = SysCtlClockGet ()/ 8; u32Load =(uMC32PWMClock);ui32PWMClock =(uPWM)
此致、
C.