您好!
我有 TI-RTOS 应用、4个 PWM、每个都使用单独的 PWM 发生器(输出 PWM0、PWM3、PWM5和 PWM6)。
-在开始时调用:
void EK_TM4C129EXL_initPWM (void)
{
/*启用 PWM 外设*/
SysCtlPeripheralEnable (SYSCTL_Periph_PWM0);
/*
*启用 GPIO 引脚上的 PWM 输出。 PWM 输出连接到以太网、
*开发板上的 LED (D4)。 PWM 配置
*下面将禁用以太网功能。
*/
//
//为 PF3配置 GPIO 引脚多路复用器
//对于 M0PWM3
//
GPIOPinConfigure (GPIO_PF3_M0PWM3);
GPIOPinTypePWM (GPIO_PORTF_BASE、GPIO_PIN_3);
#ifndef PWM_test
//
//为 PG0配置 GPIO 引脚多路复用器
//对于 M0PWM0
//
GPIOPinConfigure (GPIO_PF0_M0PWM0);
GPIOPinTypePWM (GPIO_PORTF_BASE、GPIO_PIN_0);
#endif
//
//为 PG1配置 GPIO 引脚多路复用器
//用于 M0PWM5
//
GPIOPinConfigure (GPIO_PG1_M0PWM5);
GPIOPinTypePWM (GPIO_PORTG_BASE、GPIO_PIN_1);
//为 PK4配置 GPIO 引脚多路复用器
//用于 M0PWM6
//
GPIOPinConfigure (GPIO_PK4_M0PWM6);
GPIOPinTypePWM (GPIO_PORTK_BASE、GPIO_PIN_4);
PWM_INIT();
}
-然后单独启动 PWM,例如:
PWM_Params_init (&Output1PWMparams);
Output1PWMparams.period = 100;//以微秒为单位的周期
Output1PWMparams.dutyMode = PWM_Duty_time;
Output1PWMhandle = PWM_open (Board_PWM5、&Output1PWMparams);
如果(Output1PWMhandle = NULL)
{
system_abort ("Error initializing PWM 5\n");
}
PWM_setDuty (Output1PWMHandle、10);
我可以使用周期的任意组合(50,100,300us)、但在尝试较慢的周期(2000和40000us)时、PWM_OPEN 失败、无法设置预分频器。
如何达到减慢某些 PWM 的周期、并能够同时在不同输出上实现快速周期和慢速周期?
请告知。 谢谢!
达利博尔