This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件: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.
您好!
[引用 user="can altineller"] ui32Load =(ui32PWMClock/PWM_FREQUENCY)-1;
谢谢、您能使用语法荧光笔工具编辑您的代码。 请显示 ui32Load 尝试 生成18kHz 和 PWMCLK 速度等的值。
[引用 user="can altineller"]直到 ui32Load -1、
显然、它不起作用、或者您不会寻求帮助、对吧?
任何不知道 PWMCLK 速度的人都不知道您选择的周期。