它具有6个pwm通道,需要输出的pwm周期一样,6个脉宽可设定。<br /><br />如果你的3个pwm周期不一样时,毫秒级以上的控制,可以采用时钟溢出中断方<br />式,累计三路不同的时间同设定好的脉冲时间脉宽时间比较,程序如下:<br /><br />#define a_pwm_h_data 100<br />#define a_pwm_l_data 100<br />#define b_pwm_h_data 100<br />#define b_pwm_l_data 100<br />#define c_pwm_h_data 100<br />#define c_pwm_l_data 100 <br /><br /><br />int a_pwm_h , a_pwm_l;<br />int b_pwm_h, b_pwm_l ;<br />int c_pwm_h, c_pwm_l ;<br /><br />100us溢出:<br />interrupt:<br /><br />{<br /> if(PTADO==1)<br /> {<br /> a_pwm_h++;<br /> if(a_pwm_h>=a_pwm_h_data)<br /> {<br /> a_pwm_l=0;<br /> PTAD0=0;<br /> }<br /> }<br /> <br />else<br /> {<br /> a_pwm_l++;<br /> if(a_pwm_l>=a_pwm_l_data)<br /> {<br /> a_pwm_h=0;<br /> PTAD0=1;<br /> }<br /> }<br /><br />//其它路同上可以扩展,精度可以<br /><br /><br /><br /><br />}<br /><br /><br />
|