最近在搞一个角度调节模块,简单来说就是通过输出2路PWM,经过一些模块处理,
设定一个区域里电机停止转动,区域外实现相应的正反转,从而利用电机控制角度旋转。
但是用示波器检测P1.6,P1.7(PWM)波形,是正弦波(一开始写完程序时检测时较好的矩形波,后来搭建电路完后,再次检测就成了正弦波),而且电表检测两个口电压也是在3-4V跳动(还是说这是正常的?)
我感觉在输出PWM的程序是没有问题的,要是电路硬件部分该怎么解决
/*****************************PWM输出部分*********************/
void PWM_Control1( uchar Width, uchar DutyCycle,uchar count,uchar partern) //1ms为最小单位
{ uchar i,j;
//脉宽设置 Wdith
//占空比 X0% DutyCycle
//脉冲个数 count
// pin = ;
k = (Width*10)/DutyCycle; //PWM整个周期
if(partern == 6)
{
for(i=0;i<k*count;i++)
{
P1_6= 0;
delay(Width);
P1_6= 1;
delay(k-Width);
}
/* if(i=k*count)
{
p1_6 = 1;
} */
}
if(partern == 7)
{
for(j=0;j<k*count;j++)
{
P1_7 = 0;
delay(Width);
P1_7 = 1;
delay(k-Width);
}
/* if(i=k*count)
{
p1_7 = 1;
} */
}
} |