📄 main.c
字号:
}
*P_Watchdog_Clear = 0x0001;
if(flagstop==1)
{
ShowAndVoic();
}
}
}
}
}
//=============================================================
void searchline(void)
{
uiIOA=*P_IOA_Data;
uiIOA=uiIOA&0x0078;
if(uiIOA==0x0078||uiIOA==0x0058||uiIOA==0x0068||uiIOA==0x0060||uiIOA==0x0018||uiIOA==0x0038||uiIOA==0x0070)
{
switch(uiIOA)
{
case 0x0078:
aheaddata=0x0200;
duty=10;
aheaddata1=0x0000;
*P_INT_Mask |=0x4040;
//直走
*P_Watchdog_Clear = 0x0001;
break;
case 0x0058: // 左拐
aheaddata1=0x0080;
duty1=5;
duty=12;
*P_INT_Mask |=0x404;
*P_Watchdog_Clear = 0x0001;
break;
case 0x0068:
aheaddata1=0x0100;
duty1=5;
duty=12; // 右拐
*P_INT_Mask |=0x4040;
*P_Watchdog_Clear = 0x0001;
break;
case 0x0018:
aheaddata1=0x0080;
duty1=19;
duty=25; //zuo
*P_INT_Mask |=0x4040;
*P_Watchdog_Clear = 0x0001;
break;
case 0x0060:
aheaddata1=0x0100;
duty1=19;
duty=25;
*P_INT_Mask |=0x4040;
//you
*P_Watchdog_Clear = 0x0001;
break;
case 0x0038:
aheaddata1=0x0080;
duty1=34;
duty=45;
*P_INT_Mask |=0x4040;
soft_10ms();
//zuo
soft_10ms();
*P_Watchdog_Clear = 0x0001;
break;
case 0x0070:
aheaddata1=0x0100;
duty1=29;
duty=37;
*P_INT_Mask |=0x4040;
*P_Watchdog_Clear = 0x0001;
break;
}
}
}
void searchlinett(void)
{ int i;
uiIOA=*P_IOA_Data;
uiIOA=uiIOA&0x0078;
if(uiIOA==0x0000||uiIOA==0x0018||uiIOA==0x0060||uiIOA==0x0030)
{lineflag=1;
for(i=0;i<90;i++)
{
aheaddata=0x0400;
duty=14;
aheaddata1=0;
*P_INT_Mask |=0x4040;
__asm("irq on");
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
}
Stop();
flagstop=1;
*P_Watchdog_Clear = 0x0001;
}
else
{
lineflag=0;
}
}
//======================================================================
void hedge(void)
{
unsigned int undata;
undata=*P_IOA_Data;
undata=undata&0x3000;
if(undata==0x1000||undata==0x2000)
{
hedgeflag=1;
switch(undata)
{
case 0x1000: //zuo
aheaddata1=0x0080;
duty1=33;
duty=20; //zuo
*P_INT_Mask |=0x4040;
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
*P_INT_Mask &=0xbfff;
aheaddata1=0x0000;
duty=14;
*P_Watchdog_Clear = 0x0001;
break;
case 0x2000: //you
aheaddata1=0x0100;
duty1=33;
duty=20;
*P_INT_Mask |=0x4040;
soft_10ms(); //you
soft_10ms();
soft_10ms(); //you
soft_10ms();
*P_INT_Mask &=0xbfff;
aheaddata1=0x0000;
duty=14;
*P_Watchdog_Clear = 0x0001;
break;
}
}
else
{
hedgeflag=0;
}
}
void searchlight(void)
{
unsigned int undataa;
undataa=*P_IOA_Data;
undataa=undataa&0x0007;
if(undataa==0x0007||undataa==0x0002||undataa==0x0004||undataa==0x0001||undataa==0x00006||undataa==0x0003||undataa==0x0000)
{
switch(undataa)
{
case 0x0007:
aheaddata=0x0200;
duty=10;
aheaddata1=0;
*P_INT_Mask |=0x4040;
__asm("irq on");
soft_10ms();
soft_10ms();
soft_10ms();
*P_Watchdog_Clear = 0x0001;
break;
case 0x0002:
aheaddata=0x0200;
duty=10;
aheaddata1=0x0000;
*P_INT_Mask |=0x4040;
__asm("irq on");
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
*P_Watchdog_Clear = 0x0001;
break;
case 0x0004: //zuo
aheaddata1=0x0080;
duty1=25;
duty=16; //zuo
*P_INT_Mask |=0x4040;
soft_10ms();
soft_10ms();
//*P_INT_Mask &=0xbfff;
duty=10;
// aheaddata1=0x0000;
//*P_IOA_Buffer=*P_IOA_Buffer&0xf87f;
*P_Watchdog_Clear = 0x0001;
break;
case 0x0001: //you
aheaddata1=0x0100;
duty1=23;
duty=16;
*P_INT_Mask |=0x4040;
soft_10ms(); //you
/* soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();*/
soft_10ms();
soft_10ms();
//*P_INT_Mask &=0xbfff;
duty=10;
// aheaddata1=0x0000;
//*P_IOA_Buffer=*P_IOA_Buffer&0xf87f;
*P_Watchdog_Clear = 0x0001;
break;
case 0x0006: //zuo
aheaddata1=0x0080;
duty1=18;
duty=16;
*P_INT_Mask |=0x4040;
soft_10ms();
soft_10ms();
soft_10ms();
// soft_10ms();
//soft_10ms();
// *P_INT_Mask &=0xbfff;
duty=10;
// aheaddata1=0x0000;
// *P_IOA_Buffer=*P_IOA_Buffer&0xf87f;
*P_Watchdog_Clear = 0x0001;
break;
case 0x0003: //you
aheaddata1=0x0100;
duty1=17;
duty=16; // 右拐
*P_INT_Mask |=0x4040;
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
/* soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms(); */
//*P_INT_Mask &=0xbfff;
duty=10;
// aheaddata1=0x0000;
//*P_IOA_Buffer=*P_IOA_Buffer&0xf87f;
*P_Watchdog_Clear = 0x0001;
break;
case 0x0000: //zuo
aheaddata1=0x0100;
duty1=30;
duty=17; //zuo
*P_INT_Mask |=0x4040;
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
soft_10ms();
*P_INT_Mask &=0xbfff;
duty=10;
aheaddata1=0x0000;
*P_Watchdog_Clear = 0x0001;
break;
}
}
}
void ShowAndVoic()
{
int i=0,t=0,time=0,carlong=0,tm0=0,tm1=0,dst0=0,dst1=0,dst2=0;
__asm("irq off");
time=uiTimecont/2;
carlong=speedcar();
tm0=time%10;
t=time/10;
tm1=t%10;
*P_Watchdog_Clear = 0x0001;
dst0=carlong%10;
t=carlong/10;
dst1=t%10;
dst2=t/10;
*P_Watchdog_Clear = 0x0001;
for(i=0;i<0x1000;i++)
{
F_SingleLed(1,tm1);
F_SingleLed(0,tm0);
F_SingleLed(0,10);
}
PlaySnd_Auto(tm1,1);
PlaySnd_Auto(10,1);
PlaySnd_Auto(tm0,1);
PlaySnd_Auto(13,1);
soft_10ms();
for(i=0;i<0x1000;i++)
{
F_SingleLed(0,dst0);
F_SingleLed(1,dst1);
F_SingleLed(2,dst2);
*P_Watchdog_Clear = 0x0001;
F_SingleLed(2,10);
}
PlaySnd_Auto(dst2,1);
PlaySnd_Auto(11,1);
PlaySnd_Auto(dst1,1);
PlaySnd_Auto(10,1);
PlaySnd_Auto(dst0,1);
PlaySnd_Auto(14,1);
while(1)
{
*P_Watchdog_Clear = 0x0001;
*P_INT_Ctrl &=0x0000;
*P_IOA_Data=0x0000;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -