楼主

[嵌入式] 【求助帖】代码控制

[复制链接]
正式队员null
2016-3-25 19:57:28 只看该作者

马上注册,玩转Robomaster!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
为何跑程序的时候只能执行转弯部分?直行部分得把转弯部分注释了 才能用? 求大神解答!


PitchSpeed=RC.rc.ch1-1024;                        
                AdvanceSpeed=RC.rc.ch3-1024;
                RotateSpeed=RC.rc.ch2-1024;

if(AdvanceSpeed>0)                   //////直行部分
                { TIM8->CCR1=(int)(300*(((float)AdvanceSpeed)/((float)660)));
                        TIM8->CCR2=(int)(300*(((float)AdvanceSpeed)/((float)660)));
                        TIM8->CCR3=(int)(300*(((float)AdvanceSpeed)/((float)660)));
                        TIM8->CCR4=(int)(300*(((float)AdvanceSpeed)/((float)660)));
                        GPIO_SetBits(GPIOF, GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_5|GPIO_Pin_7);
                         GPIO_ResetBits(GPIOF, GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_6);
        }
                else if(AdvanceSpeed<0)
                { TIM8->CCR1=(int)(300*(((float)(-AdvanceSpeed))/((float)660)));
                        TIM8->CCR2=(int)(300*(((float)(-AdvanceSpeed))/((float)660)));
                        TIM8->CCR3=(int)(300*(((float)(-AdvanceSpeed))/((float)660)));
                        TIM8->CCR4=(int)(300*(((float)(-AdvanceSpeed))/((float)660)));
                         GPIO_SetBits(GPIOF, GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_6);
                        GPIO_ResetBits(GPIOF, GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_5|GPIO_Pin_7); ///低 高 反转
    }
         
                //对底盘的转弯控制
         if(RotateSpeed>0)  ///右转
        {  
                 TIM8->CCR1=(int)(300*(((float)RotateSpeed)/((float)660)));
                 TIM8->CCR2=(int)(300*(((float)RotateSpeed)/((float)660)));
                 TIM8->CCR3=(int)(300*(((float)RotateSpeed)/((float)660)));
                 TIM8->CCR4=(int)(300*(((float)RotateSpeed)/((float)660)));
                GPIO_SetBits(GPIOF, GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_5|GPIO_Pin_6);
                 GPIO_ResetBits(GPIOF, GPIO_Pin_0|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_7);
}
        else if(RotateSpeed<0)
        {  
                 TIM8->CCR1=(int)(300*(((float)-RotateSpeed)/((float)660)));
                 TIM8->CCR2=(int)(300*(((float)-RotateSpeed)/((float)660)));
                 TIM8->CCR3=(int)(300*(((float)-RotateSpeed)/((float)660)));
                 TIM8->CCR4=(int)(300*(((float)-RotateSpeed)/((float)660)));
                 GPIO_SetBits(GPIOF, GPIO_Pin_0|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_7);
                GPIO_ResetBits(GPIOF, GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_5|GPIO_Pin_6);
}
        
        else if((RotateSpeed==0)&&(PitchSpeed==0))
        {
                TIM8->CCR1=0;
                TIM8->CCR2=0;
                TIM8->CCR3=0;
                TIM8->CCR4=0;
}

跳转到指定楼层
沙发

[嵌入式] 【求助帖】代码控制

[复制链接]
英雄陈小小
2016-3-30 08:39:04 只看该作者
。。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

板凳

[嵌入式] 【求助帖】代码控制

[复制链接]
英雄李嘉嘉
2016-4-2 10:02:39 只看该作者
.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

地板

[嵌入式] 【求助帖】代码控制

[复制链接]
步兵简单爱
2016-4-3 21:36:58 只看该作者
你把代码都发来我给你看看 就看这些看不出问题出在哪
5#

[嵌入式] 【求助帖】代码控制

[复制链接]
英雄陈小小
2016-4-4 10:18:07 只看该作者
此贴要沉
回复

使用道具 举报

6#

[嵌入式] 【求助帖】代码控制

[复制链接]
梯队队员liuguzhencg
2016-4-10 20:24:18 只看该作者
就贴这点,根本看不出来,你把程序打包发上来看看
7#

[嵌入式] 【求助帖】代码控制

[复制链接]
正式队员时间过的真快
2016-4-30 00:26:16 只看该作者
你直行和转弯的速度赋值是分开的,  直行的代码在上面,  转弯的代码在下面.   转弯的代码把直行的TIM8四个通道的比较寄存器的速度覆盖了,  所以就直行的速度其实没有被执行.    你应该把两个速度写到一起才可以同时工作.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

null的最新主题
触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表