请教:<br />MCU:STC12C5A60S2<br />sfr AUXR1 = 0xA2; //切换 PCA /PWM 口寄存器<br />sfr CCON = 0xD8; //<br />sfr CMOD = 0xD9; //<br />sfr CCAPM0 = 0xDA; //<br />sfr CCAPM1 = 0xDB; //<br />sfr CL = 0xE9; //<br />sfr CH = 0xF9; //<br />sfr CCAP0L = 0xEA; //<br />sfr CCAP0H = 0xFA; //<br />sfr CCAP1L = 0xEB; //<br />sfr CCAP1H = 0xFB; //<br />sfr PCA_PWM0 = 0xF2; //<br />sfr PCA_PWM1 = 0xF3; //<br /><br /><br />void main()<br />{<br /> P1M0 = 0x00; //P1口用传统51准双向口模式<br /> P1M1 = 0x00;<br /> <br /> CMOD = 0x10; //空闲模式下,PCA 计数器停止工作<br /> //PCA 时钟源为系统时钟 Fosc/12<br /> CCON = 0x00; //初始化 CCON<br /> CH = 0x00; //PCA计数器初始值高8位<br /> CL = 0x00; //PCA计数器初始值低8位<br /> CCAPM0 = 0x42; //8 位 PWM,无中断,使能 CEXn 脚作脉宽调节输出<br /> CCON |= 0x40; //CR = 1 启动 PCA 计数器 <br /> CCAP0H = 0x00; <br /> CCAP0L = 0x00; //当出现捕获或比较时,它们用来保存16 位的计数值。<br /> // 当PCA 模块用在PWM 模式中时,它们用来控制输出的<br /> //占空比。CCAP0H.CCAP0L分别为高低8位,组合使用 <br /> <br /> while(1)<br /> {<br /> ;<br /> }<br /> <br />}<br /><br />1:<br />如果我希望占空比为 20% <br />那么 CCAP0H,CCAP0L 的值要设置为多少?<br /><br />2:<br />资料上一个例子:<br />CCAP0L = 0x00; //Set the initial value same as CCAP0H<br />CCAP0H = 0xc0; //25% Duty Cycle<br />这个 25% 是怎么算出来的?<br /><br />3:<br />我只要设置了 CCAP0H,CCAP0L,并且启动 CR(PCA 计数器启动)<br />那么就可以自动输出 PWM 了,是不?<br /><br />4:<br />如果我想调整占空比,那么只要重新设置 CCAP0H,CCAP0L,<br />是吗?<br /><br />谢谢! |
|