打印

SH79F166A的PWM01互补输出不成功

[复制链接]
1088|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sszxxm|  楼主 | 2013-8-8 12:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用166A中,PWM0通道可以正常输出PWM波,但是PWM01,也就是那个互补通道死活调不出,没有任何脉冲出来,请大侠出招,谢谢!

IO端口初始化:
        P0                = 0xfd;
        P0CR        = 0x2f;
        P0PCR        = 0xc0;
PWM初始化:
PWMLO = 0x55;
        PWMEN = 0x09;                        // PWM0使能
        PWMEN1 = 0x00;                         
               
        PWM0C = 0x00;                       
        PWM0PL = 0xff;                        // 周期4096
        PWM0PH = 0x0f;
        PWM0DL = 0xff;                        // 默认1/2占空比(临时设置,实际后期调整)
        PWM0DH = 0x07;
        PWM0DT = 0x00;
沙发
sszxxm|  楼主 | 2013-8-8 21:34 | 只看该作者
终于找到PWM01不能正常工作的原因了,是中颖这个芯片的特殊寄存器较多,引入了BANK这个概念,虽然大部分与常规52兼容,但是仍有很多特殊寄存器被放在一个特殊的BANK1,访问操作这些寄存器,必须先切换INSCON寄存器里的标志位。我没弄这个,直接操作了T5,结果TH5与PWMEN
在地址上重叠,等于是修改了PWMEN寄存器,而实际数字正好是0xb1,PWM01再也出不来了。

分页是麻烦事,不细看手册,太容易中招了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

596

帖子

2

粉丝