/* Example program to test beacon receiver. Configured for internal receiver. */ // first tell compiler to use beacon software #use beacons.icb // note - cannot put comment on #use or # define // define which beacon receiver to use: 1 internal, 2 external #define BCNREC 1 void main() { int bcn; // define variable for beacon result beacon_init(BCNREC); // turn on beacon receiver while( !stop_button() ) // repeat until stop button pressed { bcn = checkbeacon(BCNREC); // get beacon value using function printf("Beacon: %d\n", bcn); // print message if( bcn == 12 ) // double beep for 12 ms beacon { beep(); sleep(0.1); beep(); } else if (bcn ==5) //single beep for 5 ms beacon { beep(); sleep(0.3); } sleep(0.4); // delay a bit anyway so display doesn't flicker } // end of while beacon_init(0); // turn off all receivers printf("Stopped, Goodbye\n"); // print message } // end of main function /* Function to check beacon time, return 5 or 12 for beacon time or 0 if no valid signal. Pass argument 1 for internal receiver or 2 for external receiver. Main function must enable appropriate receiver first! */ int checkbeacon(int beaconReceiver) { int btime = beacon(beaconReceiver); // create variable and get beacon time if((btime > 11000) && (btime < 13000)) return 12; //is it about 12 ms? else if((btime > 4000) && (btime < 6000)) return 5; // is it about 5 ms? else return 0; // if neither, return 0 } // end of checkbeacon function