当前位置:首页 > 智能超声波红外测距避障直流电机驱动小车
///////////////////////////////////////////红外/////////////////////////////////
/*if(0 == (GPIO3DATA&0x01) )//低电平,有障{ }
碍
TurnNowRight();
if(0 == (GPIO3DATA&0x02) )//低电平,有障碍 { }*/
TurnNowLeft();
//////////////////////////////////////////碰撞开关///////////////////////////////
if( (GPIO0DATA&(1<<1)) == 0X00 ) //低为{ }
碰到开关
TurnNowRight();
/*if( 0 == (GPIO0DATA & (1<<2)) )//低为{ TurnNowLeft(); }*/
if(RunDelayFiag > 100000)//HZ = 10,0000
碰到开关
走一秒归0
{ }
RunLine ();//走直线 RunDelayFiag = 0; //GPIO0DATA |= 1<<2;
}
void Function1() {
27
if((nRF2401RxStatus()) == 1) //读取p0.19的状态, nRF2401A有数据请求
{
nRF2401ReceiveByte(RxBuf);// 接收数据
switch(RxBuf[0]) { case 1: GPIO3DATA &= ~ LED1; RunLine(); break; case 2: GPIO3DATA &= ~ LED2; GoBack(); break; case 3: GPIO3DATA &= ~ LED1; TurnLeft(); break; case 4: GPIO3DATA &= ~LED2; TurnRight(); break; case 5: GPIO3DATA |= LED1; StopCar(); break; default: break; } } }
/**************************** ** Function name: main
电机驱动引脚:
左轮 :p1.6 pwm p2.1(A1),p2.2(A2) 右轮: P1.7 pwm p2.0(A1) p2.3(A2)
键盘板驱动引脚:
P0.6与SCK P0.9与MOSI P2.10接RCK P2.11接Key
28
红外驱动引脚: P3.0:左边,P3.1:右边
无线模块驱动引脚: P2.4 - P2.9:无线模块 p2.2 p2.3:指示灯
超声波模块:
P3.4:Trig P3.5:Echo
碰撞开关:
P0.1:左边 P0.2:右边
*****************************************************/ int main (void) { uint8 SotpFlag = 0; targetInit();/* 初始化目标板,切勿删除 */ pinInit();/* 引脚初始化 */
SYSAHBCLKCTRL |= (1ul << 6);/* 使能GPIO模块时钟
*/
/************L298*********************/
GPIO2DIR |= 0x0F;/* 设置P2.0-P2.3引脚为输出 */ timer0Init();
/**********************************/ /********HC-SR04*****************/ Echo_INIT();//输入 Trig_INIT();//输出
timer1Init(); /***********SPI0**************/ SSP_Init();
GPIO2DIR |= 1<<10;//片选信号BEEP为输出 KEY_INIT();//按键
29
///
display = 12345678;
////////////////////////////////////////////////////***********REDLine**************/ GPIO3DIR&=~0x03;//P3.0 P3.1为GPIO输入
//////////////////////////////WireLess////////////////////////
nRF2401Initial();// nRF2401A初始化
nRF2401Mode(0);// 设置nRF2401A工作方式:接收
GPIO3DIR |= 0x03<<2; ///////////////////////////////HitBotton////////////////////////////// GPIO0DIR &=~(0X07) ; //GPIO0DATA |= 0x0F; /////////////////////////////////////////////////////////////////////////
RunLine ();//初始化为走直线
while (1) { if(0 == G_Function) { SotpFlag = 0; Function0(); }
else if(1 == G_Function)//功能1
{ if(0 == SotpFlag) { SotpFlag = 1; StopCar(); } Function1(); } } }
/*********************************** End Of File
************************************/
30
共分享92篇相关文档