各位好,由于硬件设计将PWM接在WTIME4的PD4/PD5接口,按照配置普通TIMER的PWM模式测试,发现寄存器的值有变化,但是使用示波器不能检测到PWM波形,请各位指点。
//PWM
#define PWM0_PORT_CLK SYSCTL_PERIPH_GPIOB
#define PWM0_TIMER_PERIPH_CLK SYSCTL_PERIPH_TIMER2
#define PWM0_TIMER_BASE TIMER2_BASE
#define PWM0_PORT_BASE GPIO_PORTB_BASE
#define PWM0_PORT_PIN GPIO_PIN_0
#define PWM0_TIMER_CHL TIMER_A
#define PWM0_TIMER_PIN GPIO_PB0_T2CCP0
#define PWM12_PORT_CLK SYSCTL_PERIPH_GPIOD
#define PWM12_TIMER_PERIPH_CLK SYSCTL_PERIPH_WTIMER4
#define PWM12_TIMER_BASE WTIMER4_BASE
#define PWM12_PORT_BASE GPIO_PORTD_BASE
#define PWM1_PORT_PIN GPIO_PIN_4
#define PWM2_PORT_PIN GPIO_PIN_5
#define PWM1_TIMER_CHL TIMER_A
#define PWM2_TIMER_CHL TIMER_B
#define PWM1_TIMER_PIN GPIO_PD4_WT4CCP0
#define PWM2_TIMER_PIN GPIO_PD5_WT4CCP1
void TimerPWMInit(uint32_t prescale,uint32_t loadValue)
{
SysCtlPeripheralEnable(PWM0_PORT_CLK);
SysCtlPeripheralEnable(PWM12_PORT_CLK);
SysCtlPeripheralEnable(PWM0_TIMER_PERIPH_CLK);
SysCtlPeripheralEnable(PWM12_TIMER_PERIPH_CLK);
//开启时钟
TimerConfigure(PWM0_TIMER_BASE,TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM);
TimerConfigure(PWM12_TIMER_BASE,TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM | TIMER_CFG_B_PWM);
TimerClockSourceSet(PWM0_TIMER_BASE,TIMER_CLOCK_SYSTEM);
TimerClockSourceSet(PWM12_TIMER_BASE,TIMER_CLOCK_SYSTEM);
TimerControlLevel(PWM0_TIMER_BASE,TIMER_A,true);
TimerControlLevel(PWM12_TIMER_BASE,TIMER_BOTH,true);
TimerPrescaleSet(PWM0_TIMER_BASE,TIMER_A,prescale);
TimerPrescaleSet(PWM12_TIMER_BASE,TIMER_BOTH,prescale);
GPIOPinConfigure(PWM0_TIMER_PIN);
GPIOPinConfigure(PWM1_TIMER_PIN);
GPIOPinConfigure(PWM2_TIMER_PIN);
GPIOPinTypeTimer(PWM0_PORT_BASE,PWM0_PORT_PIN);
GPIOPinTypeTimer(PWM12_PORT_BASE,PWM1_PORT_PIN);
GPIOPinTypeTimer(PWM12_PORT_BASE,PWM2_PORT_PIN);
TimerLoadSet(PWM0_TIMER_BASE,TIMER_A,loadValue);
TimerLoadSet(PWM12_TIMER_BASE,TIMER_BOTH,loadValue);
TimerEnable(PWM0_TIMER_BASE,TIMER_A);
TimerEnable(PWM12_TIMER_BASE,TIMER_BOTH);
}