{
TBCCR2=250; TBCCR1=0; TBCCR5=0; TBCCR3=250; }
void LEFTS(void) //---------------左转微调 {
TBCCR2=100; TBCCR1=0; TBCCR5=250; TBCCR3=0; }
void RIGHTS(void) //-------------------右转微调 {
TBCCR2=250; TBCCR1=0; TBCCR5=100; TBCCR3=0; }
void STOP(void) //---------------------停止 {
TBCCR1=0; TBCCR2=0; TBCCR3=0; TBCCR5=0; }
void circle(void) {
TBCCR2=250; TBCCR1=0; TBCCR5=0; TBCCR3=200;
}
//////////////////////////////////////////////////////////////////
2逻辑判断程序: #include \void judge(void) {
while(1) {
if((data&0x01)==0x01) //左优先 {
delay_us(100);
if((data&0x01)==0x01) {
//LEFT();
//delay_ms(10);
STRAIGHT(); //冲出一段距离 delay_ms(10);
LEFT(); //左转到中间灯离开黑线 delay_ms(35); //时间自己微调
while(1)
{
LEFT();
if((data&0x04)==0x04) { delay_us(100);
if((data&0x04)==0x04) //转到中间的灯在线上 break;
} }
//STRAIGHT(); break;
} break; }
if((data&0x04)==0x04) //优先级2 2黑 直走 {
delay_us(100);
if((data&0x04)==0x04) {
STRAIGHT(); break; }
break; }
if((data&0x10)==0x10) //优先级3 右转 5黑 {
delay_us(100);
if((data&0x10)==0x10) {
STRAIGHT(); delay_ms(5); while(1)
{ RIGHT();
if((data&0x04)==0x04) { delay_us(10);
if((data&0x04)==0x04) break;
} } //STRAIGHT(); break; } break; }
if((data&0x02)==0x02) // {
delay_us(100);
if((data&0x02)==0x02)
LEFTS();
break; }
if((data&0x08)==0x08) // {
delay_us(100);
左转微调 2黑右转微调 4黑 if((data&0x08)==0x08)
RIGHTS();
break }
if((data&0x1f)==0x00) //12345白
{
delay_ms(10);
if((data&0x1f)==0x00) {
while(1)
{ circle();
if((data&0x1f)!=0x00) {
delay_us(100) //if((data&0x1f)!=0x00) break;}
} break; } break; }
else { STOP(); break; }
转到不为全白; 优先级4 原地转圈° } }