注册会员
- 积分
- 27
- 威望
- 15
- 贡献
- 8
- 兑换币
- 8
- 注册时间
- 2013-4-3
- 在线时间
- 2 小时
- 毕业学校
- 吉林农大
|
int a; //保存ADC转换结果
int b;
int c;
int d;
int e;
int f;
int flag;
void main()
{
FTM_PWM_init(FTM1, CH0, 10000, 50); //初始化FTM1_CH0输出频率为35kHZ,占空比为50%的PWM :FTM1_CH0对应PTA8口
FTM_PWM_init(FTM0, CH7, 10000, 50);//初始化FTM1_CH0输出频率为35kHZ,占空比为50%的PWM :FTM1_CH0对应PTD7口 电机
FTM_PWM_init(FTM1, CH1, 100, 50); //初始化FTM1_CH0输出频率为35kHZ,占空比为50%的PWM :FTM1_CH0对应PTA9口 舵机
adc_init(ADC1,SE4a); //初始化ADC1_SE4a ,ADC1_SE4a对应为PTE0
adc_init(ADC1,SE5a); //初始化ADC1_SE5a ,ADC1_SE5a对应为PTE1
adc_init(ADC1,SE6a); //初始化ADC1_SE6a ,ADC1_SE6a对应为PTE2
adc_init(ADC1,SE7a); //初始化ADC1_SE7a ,ADC1_SE7a对应为PTE3
adc_init(ADC1,SE4b); //初始化ADC1_SE4b ,ADC1_SE4b对应为PTc8
adc_init(ADC1,SE5b); //初始化ADC1_SE5b ,ADC1_SE5b对应为PTc9
while(1)
{
a = ad_mid(ADC1,SE4a,ADC_16bit); //读取 ADC1_SE4a ,16位精度
b = ad_mid(ADC1,SE5a,ADC_16bit); //读取 ADC1_SE5a ,16位精度
c = ad_mid(ADC1,SE6a,ADC_16bit); //读取 ADC1_SE6a ,16位精度
d = ad_mid(ADC1,SE7a,ADC_16bit); //读取 ADC1_SE7a ,16位精度
e = ad_mid(ADC1,SE4b,ADC_16bit); //读取 ADC1_SE4b ,16位精度
f = ad_mid(ADC1,SE5b,ADC_16bit); //读取 ADC1_SE5b ,16位精度
if(a>0) //A0 最左边
{ flag = 0 ; }
else if(b>0)
{ flag = 1 ; }
else if(c>0)
{ flag = 2 ; }
else if(c>0&&d>0) // 中间
{ flag = 3 ; }
else if(d>0)
{ flag = 4; }
else if(e>0)
{ flag = 5 ; }
else if(f>0)
{ flag = 6 ; } //A5 最右边
switch(flag) //电机与舵机控制转向
{
case 0:FTM_PWM_Duty(FTM1, CH0,30);FTM_PWM_Duty(FTM1, CH1,13); break;
case 1:FTM_PWM_Duty(FTM1, CH0,30);FTM_PWM_Duty(FTM1, CH1,14); break;
case 2:FTM_PWM_Duty(FTM1, CH0,30);FTM_PWM_Duty(FTM1, CH1,15); break;//高速 以最小角度恢复
case 3:FTM_PWM_Duty(FTM1, CH0,30);FTM_PWM_Duty(FTM1, CH1,16); break;//直行速度MAX
case 4:FTM_PWM_Duty(FTM1, CH0,30);FTM_PWM_Duty(FTM1, CH1,17); break;//高速 以最小角度恢复
case 5:FTM_PWM_Duty(FTM1, CH0,30);FTM_PWM_Duty(FTM1, CH1,18); break;
case 6:FTM_PWM_Duty(FTM1, CH0,30);FTM_PWM_Duty(FTM1, CH1,19); break;
default:FTM_PWM_Duty(FTM1, CH0,30);FTM_PWM_Duty(FTM1, CH1,16); break;
}
}
}
//交叉线判断
if(((a >0) || (b >0))&& ((e>0) || (f>0)))
{
FTM_PWM_Duty(FTM1, CH0,20);FTM_PWM_Duty(FTM1, CH1,16);
return ;
}
|
|