📄 control.c
字号:
#include "SPCE061V004.h"
#define FORWARD 0 //前进状态
#define BACKWARD 1 //后退状态
#define INPUT_1 0x0100 //L298端口5,对应IOB8
#define INPUT_2 0x0200 //L298端口7,对应IOB9
#define INPUT_3 0x4000 //L298端口10,对应IOB14
#define INPUT_4 0x2000 //L298端口12,对应IOB13
#define BACKWHEEL_ENA 0x0400 //L298端口11,对应IOB10
#define FOREWHEEL_ENA 0x8000 //L298端口6,对应IOB15
#define PHASE1_CURRENT 0x0800 //L298端口1,对应IOB11
#define PHASE2_CURRENT 0x1000 //L298端口15,对应IOB12
typedef unsigned int uint;
typedef unsigned char uchar;
extern uint SpeedValue; //档位值,从1-100
extern uint Status; //记录和控制车前进,后退状态
void ForeWheelReverse();
void delay(uint );
//速度控制
void Speed(uint speedvalue)
{
if(speedvalue>0 && speedvalue<=100)
SpeedValue=speedvalue;
}
//后轮正转
void ForeWheelForword()
{
*P_IOB_Data |= INPUT_3; //置高
*P_IOB_Data &= ~INPUT_4; //置低
}
//后轮反转
void ForeWheelReverse()
{
*P_IOB_Data |= INPUT_4; //置高
*P_IOB_Data &= ~INPUT_3; //置低
}
//左转
void TurnLeft()
{
if(Status== FORWARD)
{
*P_IOB_Data |= INPUT_1; //置高
*P_IOB_Data &= ~INPUT_2; //置低
*P_IOB_Data |=FOREWHEEL_ENA ;
delay(0x0003);
*P_IOB_Data &= ~FOREWHEEL_ENA ;
}
else
{
*P_IOB_Data |= INPUT_2; //置高
*P_IOB_Data &= ~INPUT_1; //置低
*P_IOB_Data |=FOREWHEEL_ENA ;
delay(0x0003);
*P_IOB_Data &= ~FOREWHEEL_ENA ;
}
}
//右转
void TurnRight()
{
if(Status== FORWARD)
{
*P_IOB_Data |= INPUT_2; //置高
*P_IOB_Data &= ~INPUT_1; //置低
*P_IOB_Data |=FOREWHEEL_ENA ;
delay(0x0003);
*P_IOB_Data &= ~FOREWHEEL_ENA ;
}
else
{
*P_IOB_Data |= INPUT_1; //置高
*P_IOB_Data &= ~INPUT_2; //置低
*P_IOB_Data |=FOREWHEEL_ENA ;
delay(0x0003);
*P_IOB_Data &= ~FOREWHEEL_ENA ;
}
}
//停止
void Stop()
{
ForeWheelReverse();
delay(0x0005);
*P_IOB_Data |= INPUT_4; //置高
*P_IOB_Data |= INPUT_3; //置高
*P_IOB_Data |= INPUT_1; //置高
*P_IOB_Data |= INPUT_2; //置高
}
//延时n ms
void delay(uint nms)
{
uint i_dl,j_dl;
for(i_dl=0;i_dl<nms;i_dl++)
for(j_dl=0;j_dl<800;j_dl++)
*P_Watchdog_Clear=1;
}
void Adjust()
{
if(Status== FORWARD) TurnRight();
else TurnLeft();
*P_Watchdog_Clear=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -