TI中文支持网
TI专业的中文技术问题搜集分享网站

使用WTIMER4输出PWM

各位好,由于硬件设计将PWM接在WTIME4的PD4/PD5接口,按照配置普通TIMER的PWM模式测试,发现寄存器的值有变化,但是使用示波器不能检测到PWM波形,请各位指点。

//PWM
#define PWM0_PORT_CLKSYSCTL_PERIPH_GPIOB
#define PWM0_TIMER_PERIPH_CLKSYSCTL_PERIPH_TIMER2
#define PWM0_TIMER_BASETIMER2_BASE
#define PWM0_PORT_BASEGPIO_PORTB_BASE
#define PWM0_PORT_PINGPIO_PIN_0
#define PWM0_TIMER_CHLTIMER_A
#define PWM0_TIMER_PINGPIO_PB0_T2CCP0
#define PWM12_PORT_CLKSYSCTL_PERIPH_GPIOD
#define PWM12_TIMER_PERIPH_CLKSYSCTL_PERIPH_WTIMER4
#define PWM12_TIMER_BASEWTIMER4_BASE
#define PWM12_PORT_BASEGPIO_PORTD_BASE
#define PWM1_PORT_PINGPIO_PIN_4
#define PWM2_PORT_PINGPIO_PIN_5
#define PWM1_TIMER_CHLTIMER_A
#define PWM2_TIMER_CHLTIMER_B
#define PWM1_TIMER_PINGPIO_PD4_WT4CCP0
#define PWM2_TIMER_PINGPIO_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);
}
long zhao96:

接的普通时钟接口的PB0可以测到PWM波形

long zhao96:

回复 long zhao96:

芯片型号TM4C123GH6PM

long zhao96:

回复 long zhao96:

问题已经解决,去掉

TimerPrescaleSet(PWM0_TIMER_BASE,TIMER_A,prescale);

    TimerPrescaleSet(PWM12_TIMER_BASE,TIMER_BOTH,prescale);
就可以了

xyz549040622:

回复 long zhao96:

感觉你这个还是对看门狗定时器了解不当造成的,没用看门狗定时器产生过PWM,等我有空跑跑看。

long zhao96:

回复 xyz549040622:

这个不是看门狗定时器,是宽定时器

xyz549040622:

回复 long zhao96:

确实是我理解错了,没用过这个,还以为是看门狗输出PWM呢。

赞(0)
未经允许不得转载:TI中文支持网 » 使用WTIMER4输出PWM
分享到: 更多 (0)