#include "../shared.h" #include "door.h" #include "sonar.h" #include "rf.h" #include "fpga.h" /* states and flags */ unsigned char state = DETECTING_USER; //unsigned char state = CHECKING_ID; unsigned char badgeID = 0x41; //A void main() { /* interrupt settings */ EA = 1; EX1 = 1; for (;;) { switch(state) { case DETECTING_USER: Sonar_Task(); break; case REQUESTING_ID: RF_Task(); break; case CHECKING_ID: FPGA_Task(); break; default: state = DETECTING_USER; }//end switch } }/* end of main */ void Ext0_ISR() interrupt 0 { if(state == DETECTING_USER) Sonar_Ext0_Handler(); // else if(state == CHECKING_ID) // FPGA_Ext1_Handler(); } void Timer0_ISR () interrupt 1 { switch(state) { case DETECTING_USER: Sonar_Timer0_Handler(); break; case REQUESTING_ID: RF_Timer0_Handler(); break; case CHECKING_ID: FPGA_Timer0_Handler(); break; }//end switch } void Ext1_ISR() interrupt 2 { if(state == CHECKING_ID) FPGA_Ext1_Handler(); } void Timer1_ISR () interrupt 3 { } void Serial_ISR() interrupt 4 { switch(state) { case REQUESTING_ID: RF_Serial_Handler(); break; } }