/***********************************************************
功能:角度舵机的测试程序
说明:P1_2接角度舵机SetDegree(int De),传入多少度,角度舵机
就旋转多少度(0<=De<=180)
时间:2012.12.18
作者:荆轩道
************************************************************/
#include<BoeBot.h>
#include<uart.h>
//P1_2控制角度舵机
#define D_0 400
#define D_180 2400 //500到2500 是逆时针转
#define AngleMotor_0() P1_2 = 0
#define AngleMotor_1() P1_2 = 1
void SetDegree(int De) //给参数0~180,整数
{ int HighTime,Cycle;
//根据角度得到延时时间
HighTime = D_0 + (((D_180-D_0)/20)*De)/9;
Cycle = 20*1000;// - HighTime;
//输出特定时间的高电平
AngleMotor_1();
delay_nus(HighTime);
//输出20ms的周期
AngleMotor_0();
delay_nus(Cycle); //Cycle直接等于20ms,与车速无关
}
void main()
{
int Degree=0,i;
int sign=10;
uart_Init();
printf("角度电机测试程序!");
while(1)
{
// for(i=0;i<1;i++)//应用于测试角度电机
SetDegree(Degree); //Degree为0~180
/*
if(Degree<10) sign=2; //当走到最右端时往返
if(Degree>170) sign=-2;
Degree = Degree+sign; //连续变化
*/
}
}