最近在搞一個角度調節模塊,簡單來說就是通過輸出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;
} */
}
} |