TIM1_PWM_Init(4999,287);//50hz
while(1)
{
delay_ms(100);
if(dir) t=t+20;
else t=t-20;
if(t>660)dir=0;
if(t==140)dir=1;
// printf("t:%d\n",t);
TIM_SetCompare1(TIM1,t);
}
} 這段程序還能使舵來回轉,pwm波形正確
但這段程序用示波器檢測pwn都沒有,舵機不動,用串口打印調試如圖所示
while(1)
{
delay_ms(100);
dianpin= GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);//紅外檢測是否有人,有人輸出高電平
printf("%d\n",dianpin);用串口調試,觀看對著人與不對著人的電平高低變化
if(!dianpin)//沒檢測到人,讓舵機轉動檢測
{
delay_ms(20000);
if(dir) t=t+20;
else t=t-20;
if(t>660) dir=0;
if(t==140)dir=1;
TIM_SetCompare1(TIM1,t);
}
else//檢測到人,舵機在原來的位置停止
{
delay_ms(1000);
TIM_SetCompare1(TIM1,t);
}
printf("t:%d\n ",t); //用串口調試觀察t的值
}
}
不對著人,串口打印如圖所示 對著人打印如下:
LZHCW4ZS6ZZOKE2PP6@R0YW.png (11.25 KB, 下載次數: 81)
下載附件
2018-6-11 17:11 上傳
92Q]MST5YOGMWVKW(7VGUWV.png (10.73 KB, 下載次數: 69)
下載附件
2018-6-11 17:12 上傳
|