f2812用比较单元实现pwm波输出问题,请帮忙??

[复制链接]
3038|1
 楼主| bl20020825 发表于 2007-7-21 17:22 | 显示全部楼层 |阅读模式
我用f2812的比较单元实现pwm输出有问题,我的对寄存器初始化代码如下面所示,这里我采用比较单元输出pwm波的同时,也采用了通用定时器1的比较输出,在运行程序时,通用定时器的比较输出是正常的,但是用比较单元pwm输出引脚没现象!郁闷,请高手指点,是不是哪里设置有问题???<br /><br />EALLOW;<br />GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6&nbsp;=&nbsp;0x0ff;//使能通用时钟1比较输出引脚<br />EDIS;<br /><br />EvaRegs.GPTCONA.bit.TCOMPOE&nbsp;=&nbsp;1;<br />EvaRegs.GPTCONA.bit.T1PIN&nbsp;=&nbsp;1;<br />EvaRegs.T1PR&nbsp;=&nbsp;32763;//时钟1的周期值为T1PR&nbsp;+&nbsp;1<br />EvaRegs.T1CMPR&nbsp;=&nbsp;10000;&nbsp;//比较值设置<br /><br />//比较单元寄存器初始化<br />EvaRegs.CMPR1&nbsp;=&nbsp;32763;<br />EvaRegs.CMPR2&nbsp;=&nbsp;32763;<br />EvaRegs.CMPR2&nbsp;=&nbsp;32763;<br />EvaRegs.ACTR.all&nbsp;=&nbsp;0x0666;<br />EvaRegs.DBTCONA.all&nbsp;=&nbsp;0;<br />EvaRegs.COMCONA.all&nbsp;=&nbsp;0xA6E0;<br /><br />EvaRegs.T1CNT&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//通用时钟1计数值置为0<br />EvaRegs.T1CON.all&nbsp;=&nbsp;0X1742;<br />//时钟1控制,采用连续递增方式,预定标为128,内部时钟,使能比较,使用自己的周期值<br />EvaRegs.T1CON.bit.TENABLE&nbsp;=&nbsp;0;&nbsp;//先关时钟,在后面再开<br />EvaRegs.T1CON.bit.TCLD10&nbsp;=&nbsp;1;<br />
 楼主| bl20020825 发表于 2007-7-22 15:18 | 显示全部楼层

问题描述改正,请大侠出招啊!

我用f2812的比较单元实现pwm输出有问题,我的对寄存器初始化代码如下面所示,这里我采用比较单元输出pwm波的同时,也采用了通用定时器1的比较输出,在运行程序时,通用定时器的比较输出是正常的,但是用比较单元pwm输出引脚没现象!郁闷,请高手指点,是不是哪里设置有问题???<br /><br />EALLOW;<br />GpioMuxRegs.GPAMUX.all&nbsp;=&nbsp;0x0ff;//使能通用时钟1比较输出引脚<br />EDIS;<br /><br />EvaRegs.GPTCONA.bit.TCOMPOE&nbsp;=&nbsp;1;<br />EvaRegs.GPTCONA.bit.T1PIN&nbsp;=&nbsp;1;<br />EvaRegs.T1PR&nbsp;=&nbsp;32763;//时钟1的周期值为T1PR&nbsp;+&nbsp;1<br />EvaRegs.T1CMPR&nbsp;=&nbsp;10000;&nbsp;//比较值设置<br /><br />//比较单元寄存器初始化<br />EvaRegs.CMPR1&nbsp;=&nbsp;32763;<br />EvaRegs.CMPR2&nbsp;=&nbsp;32763;<br />EvaRegs.CMPR2&nbsp;=&nbsp;32763;<br />EvaRegs.ACTR.all&nbsp;=&nbsp;0x0666;<br />EvaRegs.DBTCONA.all&nbsp;=&nbsp;0;<br />EvaRegs.COMCONA.all&nbsp;=&nbsp;0xA6E0;<br /><br />EvaRegs.T1CNT&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//通用时钟1计数值置为0<br />EvaRegs.T1CON.all&nbsp;=&nbsp;0X1742;<br />//时钟1控制,采用连续递增方式,预定标为128,内部时钟,使能比较,使用自己的周期值<br />EvaRegs.T1CON.bit.TENABLE&nbsp;=&nbsp;0;&nbsp;//先关时钟,在后面再开<br />EvaRegs.T1CON.bit.TCLD10&nbsp;=&nbsp;1;<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

57

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部