Page 166 - 2
P. 166
EICRA = 0b10000000;
EICRB = 0b00001010;
SREG |= 0x80;
PORTB = 0x05;
PORTA.1 = 1;
while(1){
if(rx==5) stop();
else if(rx==1) forward();
else if(rx==4) backward();
else if(rx==2) rightturn();
else if(rx==3) leftturn();
else if(rx==0) gun();
}
}
interrupt [EXT_INT4] void external_int4(void){
shot--;
PORTB = shot;
delay_ms(500);
if(shot == 0)shutdown();
EIFR = 0XFF;
}
interrupt [EXT_INT3] void external_int3(void){
shot--;
PORTB = shot;
delay_ms(500);
if(shot == 0)shutdown();
EIFR = 0XFF;
}
interrupt [EXT_INT5] void external_int5(void){
PORTB = 0x00;
shutdown();
}
interrupt [USART0_RXC] void RX_interrupt(void)
{
rx = UDR0; // 수신된 데이터가 저장된 UDR0 송수신 데이터 레지스터를 rx 에 대입
}
- 166 -