BeHappy 发表于 2024-12-28 11:05:40

8051U高级PWM输出控制,关于PWM输出极性、中断处理和输出控制的疑问

<h2>关于PWM输出极性和输出控制的疑问</h2>
<p>已经用PWM8呈现出想要的简单结果,但是回过头来看,有些疑问。</p>
<h3>实验环境</h3>
<p>MCU:8051U</p>
<p>PWM输出通道:PWM8(B组,位于P0.7针脚)</p>
<h3>实验目的</h3>
<p>想用PWM8的输出控制led,呈现出渐明渐暗的效果,以指示mcu没有死机</p>
<h3>遇到的问题</h3>
<ol>
<li>URSB和UDISB的关系不清楚:</li>
</ol>
<p>把UDISB置零的情况下,URSB可以是任意值(0或1),也可以不写关于PWMB的中断函数,对实验现象没影响。但是,如果把UDISB置位,将没有调制效果,不知道为什么。</p>
<p>针对这种情况,不处理PWMB的中断,有什么问题吗?想知道,想要获得PWM8的PWM输出,如何正确配置UDISB和URSB这2个bit位。</p>
<ol start="2">
<li>
<p>关于PWMB_IOAUX寄存器,手册中说当AUX8P置零时,PWM8 的输出只受ENO8P的控制。当我真把ENO8P bit位置零,而不去操作寄存器PWMB_BKR的MOEB bit位时,将P0.7(PWM8的输出端口)将得不到输出。实际情况是,不论AUX8P什么状态,都对PWM8的PWM输出没有控制,感觉哪里有冲突。是不是,PWM通道作为PWM输出目的时,不需要PWMn_IOAUX寄存器?</p>
</li>
<li>
<p>第28.7.7小节说,计数器开始之前,必须通过寄存器PWMB_EGR的UGB bit位初始化所有的寄存器,可实际中并没有操作它,仍然可以得到PWM8的PWM输出,难道是我理解出错了吗?</p>
</li>
<li>
<p>OC8REF的输出电平和PWM8的PWM输出端口P0.7有什么关系?</p>
</li>
<li>
<p>最后一个问题,选择PWM8的PWM输出模式2,这种情况,当计数器的值小于PWMB_CCR8,OC8REF输出低(我理解的是P0.7也输出低)。但是,如果置位CC8P,将会得到相反的结果,那这不冲突了吗?</p>
</li>
</ol>

梁工 发表于 2024-12-28 13:33:50

请参考我的例程:


页: [1]
查看完整版本: 8051U高级PWM输出控制,关于PWM输出极性、中断处理和输出控制的疑问