>这样设占空比有没有问题</P><P>周期:PWMPER01=60000;</P><P>初始值:PWMDTY01=2000;</P><P>if(PWMDTY01<40000)<BR> PWMDTY01+=1000;</P><P> else {<BR> for (k=0;k<32;k++) {<BR> <BR> PWMDTY01-=1000; </P><P> </P>
>这是我的程序,请哪个大虾帮忙修改一下,多谢多谢~`````````</P><P>#include <hidef.h> /* common defines and macros */<BR>#include <mc9s12dg128.h> /* derivative information */<BR>#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"<BR>void pwminitial()<BR>{<BR>PWME=0x22;//通道01,45使能 <BR>PWMPOL=0x22;//通道01,45输出波形开始极性为1 <BR>PWMCAE=0x00; //左对齐输出模式<BR>PWMCTL=0x50;//通道01,45级联 <BR>PWMCLK=0x02;//通道01选择SA为时钟源 <BR>PWMSCLA=0X04;//通道01时钟SA为3MHz(24/(2*4))<BR>PWMPER01=60000;//设定通道01输出频率(50Hz) <BR>}</P><P>void main()<BR>{<BR> pwminitial();<BR> DDRP=0XFF;<BR> PWMDTY01=2000; <BR> while(1)<BR>{<BR> int i;<BR> int k;<BR> /* for(i=0;i<30000;i++)<BR> {if(PTP_PTP0==0) //PTP0口作为输出引脚<BR> PORTB=0X00;<BR> else<BR> PORTB=0XFF;<BR> _asm "nop";<BR> _asm "nop";<BR> _asm "nop";<BR> } */ </P><P> if(PWMDTY01<55000)<BR> PWMDTY01+=1000;<BR> <BR> else {<BR> for (k=0;k<30;k++) {<BR> <BR> PWMDTY01-=1000; <BR> /* for(i=0;i<30000;i++)<BR> {if(PTP_PTP0==0) //PTP0口作为输出引脚<BR> PORTB=0X00;<BR> else<BR> PORTB=0XFF;<BR> _asm "nop";<BR> _asm "nop";<BR> _asm "nop";<BR> } */ <BR> }<BR> } <BR>}<BR> EnableInterrupts;</P><P> for(;;) {} /* wait forever */<BR> /* please make sure that you never leave this function */</P><P>}</P>
>接地正确吗</P>
>检查一下接线,包括共地,信号输入正确,再看频率和占空比.</P>
>好像是共地的问题,我是把P1的引脚5与直流稳压电源的负接了起来(直流稳压是供舵机的)。现在又只是反转了,有点正转的意思,但好象是转了很小的角度,总体看来是反转的,与原来刚好相反,应该是程序不恰当吧。哪位高手帮我改下,多谢多谢````程序就在上面,劳驾......</P>| 欢迎光临 智能车制作 (http://www.znczz.com/) | Powered by Discuz! X3.2 |