新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2021-3-15
- 在线时间
- 6 小时
|
1金钱
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "timer.h"
#include "can.h"
#include "Command.h"
#include "math.h"
#include "control.h"
#include "StepMotor.h"
void Run(void);
int main(void)
{
u8 cnt=0;
u8 flag=0;
HAL_Init();
Stm32_Clock_Init(360,25,2,8);
delay_init(180);
LED_Init();
KEY_Init();
uart_init(115200);
uart2_init(115200);
Step1_init(1999,90-1);
Step2_init(1999,90-1);
TIM3->CCR4=0;//1رÕ2½½øμç»ú
TIM4->CCR1=0;
CAN1_Mode_Init(CAN_SJW_1TQ,CAN_BS2_6TQ,CAN_BS1_8TQ,6,CAN_MODE_NORMAL);
ControlJiazai();
delay_ms(10);
Control_CanSet_SpeedPID(50,5000);
delay_ms(50);
Control_CanSend_Maxspeed(5000);
delay_ms(50);
Control_CanSend_Add(500);
delay_ms(50);
Control_CanSend_Command(0);//¿ØÖÆÃüáî //Ëù¶èÄ£ê½
delay_ms(3000);
while(1)
{
if(ps_key[0]==1 ) //°′Ï°′¼ü
{
printf("O\r\n");//open ¼D×óÕÅ¿a
// flag=1;
}
if(ps_key[1]==1 )
{
printf("C\r\n");//close ¼D×ó1رÕ
//flag=2;
}
if(ps_key[2]==1 )//°′¼ü3~diancifa6
{
printf("S\r\n");//stop,¼D×óí£Ö1
//flag=3;
}
if(ps_key[3]==1)//°′¼ü3~diancifa6
{
DIR1=0;
TIM3->CCR4=1000;
printf("CCR4=%d\r\n",TIM3->CCR4);
cnt=0;
printf("cnt=%d\r\n",cnt);
}
if(ps_key[4]==1 )//°′¼ü3~diancifa6
{
DIR1=1;
TIM3->CCR4=1000;
printf("CCR4=%d\r\n",TIM3->CCR4);
cnt=0;
printf("cnt=%d\r\n",cnt);
}
if(ps_key[5]==1 )//°′¼ü3~diancifa6
{
printf("r\r\n");//R,Dy×a 90¶è
// flag=6;
}
if(ps_key[6]==1 )//°′¼ü3~diancifa6
{
printf("R\r\n");//R,Dy×a180¶è
// flag=7;
}
if(ps_key[7]==1 )//°′¼ü3~diancifa6
{
printf("l\r\n");//R,Dy×a 90¶è
// flag=8;
}
if(ps_key[8]==1 )//°′¼ü3~diancifa6
{
DIR2=0;
TIM4->CCR1=1000;
printf("%d",TIM4->CCR1);
cnt=0;
}
if(ps_key[9]==1 )//°′¼ü3~diancifa6
{
DIR2=1;
TIM4->CCR1=1000;
printf("%d",TIM4->CCR1);
cnt=0;
}
// switch(flag)//·àÖ1ᬰ′
// {
//
// case 1:if(ps_key[0] == 0) flag=0;break;
// case 2:if(ps_key[1] == 0) flag=0;break;
// case 3:if(ps_key[2] == 0) flag=0;break;
// case 6:if(ps_key[5] == 0) flag=0;break;
// case 7:if(ps_key[6] == 0) flag=0;break;
// case 8:if(ps_key[7] == 0) flag=0;break;
// default:break;
// }
cnt++;
printf("cnt=%d\r\n",cnt);
if(cnt>2)
{
cnt=0;
TIM3->CCR4=0;
TIM4->CCR1=0;
}
Run();
delay_ms(10);
}
}
void Run(void)
{
int Vx=0,Vy=0,W=0;
if(ps_left[0]>=26) Vx=-1000;
if(ps_left[0]==0) Vx=1000;
if(ps_left[1]==0) Vy=-1000;
if(ps_left[1]>=26) Vy=1000;
if(ps_right[0]==0) Vx=-2000;
if(ps_right[0]>=28) Vx=2000;
if(ps_right[1]==0) Vy=2000;
if(ps_right[1]>=28) Vy=-2000;
if(ps_key[9]==1)
{
W=10;
}
if(ps_key[10]==1)
{
W=-10;
}
ThreeWheelControl(Vx,Vy,W,0);
}
注释掉那段switch后无法给CCR赋值输出一直是0,但是加上switch以后就能了不知道为什么
|
|