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)
|