학교에서 이번학기때 pcb를 떠서 라인트레이서를 만들었는데 단면기판에다가 어떤 한 교수님은 단판에 열이 너무 발생해서 작동이 되질 않으거라고 그러시고 라인트레이서를 가르쳐주시는 교수님께서는 작동안되면 F 작동되면 A+이라 해서 참 힘듭니다.
이거 작동 될까 고민인데 죄송한데 프로그램 좀 해석해주세요 수업시간에 강의 한번도 안해주시고 수업시간에 놀고 수업끝날때 마다 과제를 내 주시네요
죄송하지만 이파일 더 간략화 어떻게 하죠 그리고 해석 좀 부탁 드립니다.
while(1)
{
sensor = 0x00;
PORTC = B_on ; // Fire on
delay_us(40);
sensor = PINF; // PORTA;
PORTC = B_off ; // Fire On
//PORTA = 0x00;
delay_us(40);
sensor &= 0xff;
// BLACK : 0, WHITE : 1
// if((sensor != 0x3c) && (sensor |= 0x2c) && (sensor!=0x0c) &&(sensor != 0x34) && (sensor!=0x30) && (sensor!=0x00)) sensor = temp;
t = 0;
t = sensor;
t <<= 1;
PORTD = t;
switch(sensor){ // PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
case 0x18:Forward( ); // x x 0 0 0 0 x x Forward : 0x3c
break; // x x 1 0 1 1 x x RightTurn1 : 0x2c
case 0x08:RightTurna(); // x x 0 0 1 1 x x RightftTurn2 : 0x0c
break; // x x 1 1 0 1 x x LeftTurn1 : 0x34
case 0x04:RightTurna(); // x x 1 1 0 0 x x LeftTurn2 : 0x30
break;
case 0x1c:RightTurna(); // x x 0 0 1 1 x x RightftTurn2 : 0x0c
break; // x x 1 1 0 1 x x LeftTurn1 : 0x34
case 0x1e:RightTurna(); // x x 1 1 0 0 x x LeftTurn2 : 0x30
break;
case 0x0c:RightTurnb(); // x x 0 0 1 1 x x RightftTurn2 : 0x0c
break;
case 0x0e:RightTurnc(); // x x 0 0 1 1 x x RightftTurn2 : 0x0c
break;
case 0x06:RightTurnd(); // x x 1 1 0 0 x x LeftTurn2 : 0x30
break;
case 0x02:RightTurne(); // x x 0 0 1 1 x x RightftTurn2 : 0x0c
break;
case 0x10:LeftTurna();
break;
case 0x20:LeftTurna();
break;
case 0x38:LeftTurna();
break;
case 0x78:LeftTurna();
break;
case 0x30:LeftTurnb();
break;
case 0x70:LeftTurnc();
break;
case 0x60:LeftTurnd();
break;
case 0x40:LeftTurne();
break;
case 0x00 :Forward();
break;
case 0x42:end();
break;
case 0x5a:end();
break;
case 0x52:end();
break;
case 0x4a:end();
break;
default: Forward();
break;
} // end of switch
temp = sensor;
} // end of while
}