void SG90_Init1(float angle) //angle是要轉的角度
{ angle=(u16)(50.0*angle/9.0+249.0);
TIM_SetCompare1(TIM5,angle);
}
void SG90_Init2(float angle)
{ angle=(u16)(50.0*angle/9.0+249.0);
TIM_SetCompare2(TIM5,angle);
}
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "usart.h"
- #include "timer.h"
- void SG90_Init1(float angle) //angle是要轉的角度
- { angle=(u16)(50.0*angle/9.0+249.0);
- TIM_SetCompare1(TIM5,angle);
- }
- void SG90_Init2(float angle)
- { angle=(u16)(50.0*angle/9.0+249.0);
- TIM_SetCompare2(TIM5,angle);
- }
- int main(void)
- { int i;
- delay_init();
- PWM5_Init(9999,143);//不分頻。PWM頻率=72*10^6/(9999+1)/(143+1)=50Hz 即 20ms一個周期
- SG90_Init1(0); //舵機轉到零度
- while(1)
- {
- for(i=0;i<=180;i=i+10)//舵機每次轉10度,轉到180回零
- {
- SG90_Init1(i);//信號線1 A0
- SG90_Init2(i);//信號線2 A1
- delay_ms(1000);
-
- }
- if(i>=180)
- {
- i=0;
- }
- }
- }
復制代碼
Keil代碼下載:
兩路舵機.7z
(188.11 KB, 下載次數: 30)
2022-4-6 22:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|