Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: N5110 SDFileSystem SRF02 TMP102 mbed
Fork of Ranger by
Diff: main.h
- Revision:
- 11:b64d123b9f4f
- Parent:
- 10:c9f3c22368f1
- Child:
- 12:0171e8723d9d
--- a/main.h Wed May 04 22:16:06 2016 +0000 +++ b/main.h Thu May 05 10:51:19 2016 +0000 @@ -2,7 +2,7 @@ @file main.h @brief Header file containing functions prototypes, defines and global variables. @brief Ranger Project -@brief Revision 1.0. +@brief Revision 1.3. @author Philip Thompson @date March 2016 @brief The following code has been writen for the University of Leeds ELEC264501 embedded system project and is intended to @@ -24,7 +24,8 @@ #define HIGH 1 /// High output - +/// for PC debug +Serial serial(USBTX, USBRX); /** @@ -60,11 +61,11 @@ @namespace Timers @brief Tickers and Timeouts */ -Ticker ticker; -Ticker ticker_srf02; -Ticker ticker_standby; -Timeout buzzoff; -Timeout buzzon; +Ticker ticker; // Ticker to control LED flash +Ticker ticker_srf02; //Ticker to get distance reading +Ticker ticker_standby; //Ticker to control standby +Timeout buzzoff; //Buzzer off duratuion +Timeout buzzon; // buzzer on duration // Create TMP102 object TMP102 tmp102(I2C_SDA,I2C_SCL); @@ -84,6 +85,9 @@ /// Connections to SD card holder on K64F (SPI interface) SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS FILE *fp; + +//FLAGS\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + /** @namespace TimerFlags @brief Flags for use with timed interupts @@ -97,35 +101,58 @@ */ volatile int g_sw1_flag = 0, g_sw2_flag = 0; -/** -@namespace RangePresets -@brief Preset range of the differant alert levels -*/ -float Traw; + + +//VERIABLES\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +/// Upper limit of alert 1 +int r1 = 03; +/// Upper limit of alert 2 +int r2 = 10; +/// Upper limit of alert 3 +int r3 = 20; +/// Upper limit of alert 4 +int r4 = 30; +/// Upper limit of alert 5 +int r5 = 40; +/// Upper limit of alert 6 +int r6 = 50; +/// Upper limit of alert 7 +int r7 = 70; +/// Veriable to hold sumation of distance readings for mean vale calculation int totaldistance; -int r1 = 03;/// Upper limit of alert 1 -int r2 = 10;/// Upper limit of alert 2 -int r3 = 20;/// Upper limit of alert 3 -int r4 = 35;/// Upper limit of alert 4 -int r5 = 50;/// Upper limit of alert 5 -int r6 = 65;/// Upper limit of alert 6 -int r7 = 80;/// Upper limit of alert 7 -float avgdistance =0; // Averaged Distance vale from ten previous readings -int subpage; ///< veriable to hold the page being viewed with in the submenu -int page;/// veriable to hold the page being viewed with in the menu -int offset = 0;/// veriable to hold the offset and adjust the 0 Range point -int alert;/// veriable to hold the current alert level -int distance;/// veriable to hold the distance read from the srf02 sensor -float bright = 1.0;/// veriable to hold the current LED backlight of the 5110 LCD -int units = 1;/// veriable to hold the current unit type set to METRIC as default -//int length, length1, length2, length3, length4; // -char buffer[14], buffer1[14], buffer2[14], buffer3[14], buffer4[14],buffer5[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14) not ended globale but reused frquently throuh out -float T; /// Temperature value retured from TMP102 sensor -int standby = 0; ///????????????????????? -float c =1; /// convertion factor from Cm to inch 1 = metric no convertion -int check_flag = 0; ///??????????? +///< veriable to hold the page being viewed with in the submenu +int subpage; +/// veriable to hold the page being viewed with in the menu +int page; +/// veriable to hold the offset and adjust the 0 Range point +int offset = 0; +/// veriable to hold the current alert level +int alert; +/// veriable to hold the distance read from the srf02 sensor +int distance; +/// veriable to hold the current unit type set to 1 = METRIC as default +int units = 1; +///standby state 1. path clear 2. Temp 3.Temp no backlight +int standby = 0; +///flag raised is there is a collision +int check_flag = 0; +/// Temp reading return from TMP120 sensor +float Traw; +/// veriable to hold the current LED backlight of the 5110 LCD +float bright = 1.0; +/// Temperature value retured from TMP102 sensor +float T; +/// Veriable to hold the distance across the screen the distance bar should go float distbar; -int flash = 0; +/// Averaged Distance vale from ten previous readings +float avgdistance =0; +/// convertion factor from Cm to inch 1 = metric no convertion +float c =1; +// each character is 6 pixels wide, screen is 84 pixels (84/6 = 14) not needed to be globle but reused frquently throuhout +char buffer[14], buffer1[14], buffer2[14], buffer3[14], buffer4[14],buffer5[14]; + + +/*!< Stucture to hold all outputs. Steady LEDs, Flashing LEDs, Tone on, Tonne off*/ struct Alertlevel { char srr_led; /// stead RED LED state char sa_led; /// stead AMBER LED state @@ -133,11 +160,12 @@ char frr_led;///FLASHING RED LED state char fa_led; ///FLASHING AMBER LED state char fgg_led; ///FLASHING GREEN LED state - float toneon; - float toneoff; -}; /*!< Stucture to hold all outputs. Steady LEDs, Flashing LEDs, Tone on, Tonne off*/ + float toneon; ///Tone on time + float toneoff; ///Tone off time +}; typedef const struct Alertlevel STyp; +/*!< Array contaning structures for diffent outputs */ STyp Alertlevel[8] = { {LOW,LOW,LOW,LOW,LOW,LOW,0,1}, // no output {LOW,LOW,LOW,LOW,LOW,HIGH,0.1,1.0}, //flash green @@ -149,14 +177,42 @@ {LOW,LOW,LOW,HIGH,HIGH,HIGH,1,0} // all flash };/*!< Array contaning structures for diffent outputs */ -void flip(); -void buzzflag(); + -/** Controls the LCD while not in a Menu Function called to print to the LCD display - @param i used to scale the max distaance to the width of the screen - @param distance Distance read from sensor to be dispayed - @param distbar used to adjust how far along the screen the bar is to go acorrding to distance +//FUNCTIONS///////////////////////////////////////////// + +/** +Function called to stop buzzer at end of on period and then make buzzer avilable again after off period +@param buzz_flag 1 or 0 +@param buzzer = 0.0 buzzer off +@code +{ + buzz_flag = 1; + buzzer = 0.0; + buzzon.attach(&buzzflag,Alertlevel[alert].toneoff); +} +@endcode +*/ +void flip(); + +/** Flag used it indicate if buzzer is avilable or on a off period +@param buzz_flag zero +@code +{ + buzz_flag = 0; + return; +} +@endcode +*/ +void buzzflag(); + +/** Controls the LCD while not in a Menu + +@param i used to scale the max distaance to the width of the screen +@param distance Distance read from sensor to be dispayed +@param distbar used to adjust how far along the screen the bar is to go acorrding to distance + @code if (alert == 0) { if (g_timer_flag_standby) { @@ -238,10 +294,6 @@ @endcode */ void lcdoutput(); -void save(); -void timer_isr_led(); -void timer_isr_srf02(); -void timer_isr_standby(); /** Called to increment to brightness by 0.2 each time when at 1 resets back to 0.0 @param bright 0.0-1 @@ -256,8 +308,28 @@ @endcode */ void backlight(); -void sw2_isr(); -void sw1_isr(); + +/** +Sets up and initalizies switches, LEDs, Tickers and serial connection +@code +{ + serial.baud(115200); // full-speed! + ticker.attach(&timer_isr_led,0.35); /// Attach the ticker for the flashig LEDs + ticker_srf02.attach(&timer_isr_srf02,0.2);/// Attach the ticker for collecting a range reading + ticker_standby.attach(&timer_isr_standby,5.0); + sw1.rise(&sw1_isr); /// sw1_isr called when button presed on the rising edge + sw2.rise(&sw2_isr); /// sw2_isr called when button presed on the rising edge + r_led = 1; //Onboard leds + b_led = 1; //Onboard leds + g_led = 1; //Onboard leds + rr_led = 0; //PCB LEDS + a_led = 0; //PCB LEDS + gg_led = 0; //PCB LEDS + sw2.mode(PullDown); //Turns on use of the pulldown resistors for use with the PCB buttons + sw1.mode(PullDown); //Turns on use of the pulldown resistors for use with the PCB buttons +} +@endcode +*/ void setup(); /** A fuction used to determin the alert level given a range with the use of IF statments @@ -286,54 +358,62 @@ @endcode */ void setalert(); -/** If statments to determine the output of each LED by inspecting the struct in the relevent element of the alertlevel array +/** Function for controlling the LED outputs +@para alert changes to element array and so output controlls @code - if (alert ==7) { - if (g_timer_flag_led) { - g_timer_flag_led = 0; // if it has, clear the flag - rr_led = !rr_led; - gg_led = !gg_led; - a_led = !a_led; - } - } else if(Alertlevel[alert].fa_led == HIGH) { - if (g_timer_flag_led) { - g_timer_flag_led = 0; // if it has, clear the flag - a_led = !a_led; - } - } else if (Alertlevel[alert].frr_led == HIGH) { - if (g_timer_flag_led) { - g_timer_flag_led = 0; // if it has, clear the flag - rr_led = !rr_led; - } - } else if(Alertlevel[alert].fgg_led == HIGH) { - if (g_timer_flag_led) { - g_timer_flag_led = 0; // if it has, clear the flag - gg_led = !gg_led; - } - } else { - rr_led = Alertlevel[alert].srr_led; - a_led = Alertlevel[alert].sa_led; - gg_led = Alertlevel[alert].sgg_led; - } +{ + int flash = 0; ///Variable to toggle LEDs high low + if (g_timer_flag_led) { + g_timer_flag_led = 0; + flash = !flash; // if it has, clear the flag + } + if(Alertlevel[alert].fa_led == HIGH) { + a_led = flash; + } else { + a_led = Alertlevel[alert].sa_led; + } + if (Alertlevel[alert].frr_led == HIGH) { + rr_led = flash; + } else { + rr_led = Alertlevel[alert].srr_led; + } + if(Alertlevel[alert].fgg_led == HIGH) { + gg_led = flash; + } else { + gg_led = Alertlevel[alert].sgg_led; + } +} +@endcode +*/ +void setleds(); + /** + @code +{ + + control the PWM to drive the buzzer + @param buzzer.period frequncy 1KHz + @param buzzer duty cycle equal on/off max volume + @param Alertlevel[alert].toneon controls how long the tone will last depending on alert + */ + buzzer.period (1.0/1000.0); + buzzer = 0.5; + buzzoff.attach(&flip, Alertlevel[alert].toneon); } -@endcode*/ -void setleds(); +@endcode +*/ void setbuzzer(); -void menu(); -/** -{ - Function called to invoke a menu within a while loop with button interupts used to move pages and adjust within a switch statment - @param g_sw1_flag 0 or 1 used to advance page - @param g_sw2_flag 0 or 1 used to adjust current item - @code - while(1) { +/** +Function used to call and navigate Main menu and change settings +@code +{ + while(1) { if (g_sw1_flag) { g_sw1_flag = 0; - page++; /// Moves page + page++; // Moves page lcd.clear(); } switch (page) { @@ -342,232 +422,312 @@ g_sw2_flag = 0; // if it has, clear the flag backlight(); lcd.clear(); - } else { - int lightbar = bright*84; - sprintf(buffer2,"*****MENU*****"); - sprintf(buffer1,"BACKLIGHT"); - sprintf(buffer3,"%.0f%%",bright*100); - lcd.printString(buffer2,0,0); - lcd.printString(buffer1,0,1); - lcd.printString(buffer3,0,2); - lcd.drawRect(0,38,lightbar,7,1); - lcd.refresh(); - } + int lightbar = bright*84; + sprintf(buffer2,"%.0f%%",bright*100); + lcd.drawRect(0,26,lightbar,7,1); // move bar up!!!!!!!!!!!!!!!! + lcd.printString("BACKLIGHT",0,1); + lcd.printString(buffer2,0,2); + lcd.printString("NEXT ADJ",0,5); + lcd.refresh(); break; - case 1: if (g_sw2_flag) { g_sw2_flag = 0; // if it has, clear the flag if (offset == 20) { offset = 0; + lcd.clear(); } else { offset += 1; } - } else { - length2 = sprintf(buffer2,"*****MENU*****"); - length1 = sprintf(buffer1,"OFFSET"); - length3 = sprintf(buffer3,"%i",offset); - lcd.printString(buffer2,0,0); - lcd.printString(buffer1,0,1); - lcd.printString(buffer3,0,2); - lcd.refresh(); } - + sprintf(buffer2,"%i",offset); + lcd.printString("OFFSET",0,1); + sprintf(buffer4,"NEXT ADJ"); + lcd.printString(buffer4,0,5); break; - case 2: if (g_sw2_flag) { g_sw2_flag = 0; // if it has, clear the flag if (units == 1) { units = 0; + c = 0.3937; } else { units = 1; + c = 1; + lcd.clear(); } } - if (units == 1) { - sprintf(buffer3,"METRIC"); - lcd.printString(buffer3,0,2); + if (units == 0) { + sprintf(buffer2,"IMPERIAL"); } else { - sprintf(buffer3,"IMPERIAL"); - lcd.printString(buffer3,0,2); + sprintf(buffer2,"METRIC"); + } + lcd.printString("NEXT ADJ",0,5); + lcd.printString("UNITS",0,1); + break; + case 3: + if (g_sw2_flag) { + g_sw2_flag = 0; // if it has, clear the flag + check_flag =0; + lcd.clear(); + } + if (check_flag == 0) { + sprintf(buffer2,"COLLISION"); + lcd.printString("NO",0,1); + sprintf(buffer4,"NEXT "); + } else { + sprintf(buffer2,"COLLISION"); + lcd.printString("CLEAR",0,1); + sprintf(buffer4,"NEXT CLEAR"); } - sprintf(buffer2,"*****MENU*****"); - sprintf(buffer1,"UNITS"); - lcd.printString(buffer2,0,0); - lcd.printString(buffer1,0,1); - lcd.refresh(); - + lcd.printString(buffer4,0,5); break; - - case 3: - + case 4: + if (g_sw2_flag) { + g_sw2_flag = 0; // if it has, clear the flag + bright = 1.0; + offset = 0; + units = 1; + r1 = 03;// Upper limit of alert 1 + r2 = 10;// Upper limit of alert 2 + r3 = 20;// Upper limit of alert 3 + r4 = 30;// Upper limit of alert 4 + r5 = 50;// Upper limit of alert 5 + r6 = 60;// Upper limit of alert 6 + r7 = 80;// Upper limit of alert 7 + lcd.clear(); + lcd.printString("SETTINGS",0,1); + lcd.printString("RESET",0,2); + wait(1); + return; + } + sprintf(buffer2,"SETTINGS"); + lcd.printString("RESET",0,1); + lcd.printString("NEXT RESET",0,5); + break; + case 5: if (g_sw2_flag) { g_sw2_flag = 0; // if it has, clear the flag submenu(); } - length2 = sprintf(buffer3,"*****MENU*****"); - length3 = sprintf(buffer1,"RANGE"); - length3 = sprintf(buffer2,"PARAMETERS"); - lcd.printString(buffer3,0,0); - lcd.printString(buffer1,0,1); - lcd.printString(buffer2,0,2); + sprintf(buffer2,"PARAMETERS"); + lcd.printString("RANGE",0,1); + lcd.printString("EXIT ADJ",0,5); + break; + default: + lcd.clear(); + save (); + lcd.printString(" SAVING ",0,2); + lcd.printString(" SETTINGS ",0,3); + wait (1); + return; + }// switch bracket + lcd.printString(buffer2,0,2); + lcd.printString("*****MENU*****",0,0); + lcd.refresh(); + }//while braket +}//functon bracket +@endcode +*/ +void menu(); +/** +Function for submenu Controlling the range peramiters +@code +{ + while(1) { + /// interupt used to shift page + if (g_sw1_flag) { + g_sw1_flag = 0; + subpage++; + } + switch (subpage) { ///interupt used to adjust range + case 0: + if (g_sw2_flag) { + g_sw2_flag = 0; // if it has, clear the flag + if (r2 == r3) { + r2 = 3; + } else { + r2 = r2+1; + } + } + sprintf(buffer4,"1Cm to %iCm",r2); + lcd.printString("*****MENU*****",0,0); + lcd.printString("RANGE",0,1); + lcd.printString("PARAMETERS",0,2); + lcd.printString(buffer4,0,3); + lcd.printString("NEXT ADJ",0,5); break; - + case 1: + if (g_sw2_flag) { + g_sw2_flag = 0; // if it has, clear the flag + if (r3 == r4) { + r3 = r2; + } else { + r3 += 1; + } + } + sprintf(buffer4,"%iCm to %iCm",r2,r3); + lcd.printString("*****MENU*****",0,0); + lcd.printString("RANGE",0,1); + lcd.printString("PARAMETERS",0,2); + lcd.printString(buffer4,0,3); + lcd.printString("NEXT ADJ",0,5); + break; + case 2: + if (g_sw2_flag) { + g_sw2_flag = 0; // if it has, clear the flag + if (r4 == r5) { + r4 = r3; + } else { + r4 += 1; + } + } + sprintf(buffer4,"%iCm to %iCm",r3,r4); + lcd.printString("*****MENU*****",0,0); + lcd.printString("RANGE",0,1); + lcd.printString("PARAMETERS",0,2); + lcd.printString(buffer4,0,3); + lcd.printString("NEXT ADJ",0,5); + break; + case 3: + if (g_sw2_flag) { + g_sw2_flag = 0; // if it has, clear the flag + if (r5 == r6) { + r5 = r4; + } else { + r5 += 1; + } + } + sprintf(buffer4,"%iCm to %iCm",r4,r5); + lcd.printString("*****MENU*****",0,0); + lcd.printString("RANGE",0,1); + lcd.printString("PARAMETERS",0,2); + lcd.printString(buffer4,0,3); + lcd.printString("NEXT ADJ",0,5); + break; + case 4: + if (g_sw2_flag) { + g_sw2_flag = 0; // if it has, clear the flag + if (r6 == r7) { + r6 = r5; + } else { + r6 += 1; + } + } + sprintf(buffer4,"%iCm to %iCm",r5,r6); + lcd.printString("*****MENU*****",0,0); + lcd.printString("RANGE",0,1); + lcd.printString("PARAMETERS",0,2); + lcd.printString(buffer4,0,3); + lcd.printString("NEXT ADJ",0,5); + break; + case 5: + if (g_sw2_flag) { + g_sw2_flag = 0; // if it has, clear the flag + if (r7 == 300) { + r7 = r6; + } else { + r7 += 1; + } + } + sprintf(buffer4,"%iCm to %iCm",r6,r7); + lcd.printString("*****MENU*****",0,0); + lcd.printString("RANGE",0,1); + lcd.printString("PARAMETERS",0,2); + lcd.printString(buffer4,0,3); + lcd.printString("EXIT ADJ",0,5); + break; default: lcd.clear(); return; - } - } - @endcode - */ -void menu(); -/** -@code - while(1) { - /// innterupt used to shift page - if (g_sw1_flag) { - g_sw1_flag = 0; - subpage++; - } - switch (subpage) { - ///interupt used to adjust range - case 0: - if (g_sw2_flag) { - g_sw2_flag = 0; // if it has, clear the flag - if (r2 == r3) { - r2 = 1; - } else { - r2 = r2+1; - } - } - length2 = sprintf(buffer1,"*****MENU*****"); - length3 = sprintf(buffer2,"RANGE"); - length3 = sprintf(buffer3,"PARAMETERS"); - length4 = sprintf(buffer4,"1Cm to %iCm",r2); - lcd.printString(buffer1,0,0); - lcd.printString(buffer2,0,1); - lcd.printString(buffer3,0,2); - lcd.printString(buffer4,0,3); - break; - - case 1: - - if (g_sw2_flag) { - g_sw2_flag = 0; // if it has, clear the flag - if (r3 == r4) { - r3 = r2; - } else { - r3 += 1; - } - } - - sprintf(buffer1,"*****MENU*****"); - sprintf(buffer2,"RANGE"); - sprintf(buffer3,"PARAMETERS"); - sprintf(buffer4,"%iCm to %iCm",r2,r3); - lcd.printString(buffer1,0,0); - lcd.printString(buffer2,0,1); - lcd.printString(buffer3,0,2); - lcd.printString(buffer4,0,3); - break; - - case 2: - - if (g_sw2_flag) { - g_sw2_flag = 0; // if it has, clear the flag - if (r4 == r5) { - r4 = r3; - } else { - r4 += 1; - } - } + }//switch breaket + }//while bracket +}//function bracket +@endcode +*/ +void submenu(); - sprintf(buffer1,"*****MENU*****"); - sprintf(buffer2,"RANGE"); - sprintf(buffer3,"PARAMETERS"); - sprintf(buffer4,"%iCm to %iCm",r3,r4); - lcd.printString(buffer1,0,0); - lcd.printString(buffer2,0,1); - lcd.printString(buffer3,0,2); - lcd.printString(buffer4,0,3); - break; - - case 3: - - if (g_sw2_flag) { - g_sw2_flag = 0; // if it has, clear the flag - if (r5 == r6) { - r5 = r4; - } else { - r5 += 1; - } - } - - sprintf(buffer1,"*****MENU*****"); - sprintf(buffer2,"RANGE"); - sprintf(buffer3,"PARAMETERS"); - sprintf(buffer4,"%iCm to %iCm",r4,r5); - lcd.printString(buffer1,0,0); - lcd.printString(buffer2,0,1); - lcd.printString(buffer3,0,2); - lcd.printString(buffer4,0,3); - break; - case 4: - - if (g_sw2_flag) { - g_sw2_flag = 0; // if it has, clear the flag - if (r6 == r7) { - r6 = r5; - } else { - r6 += 1; - } - } - - length2 = sprintf(buffer1,"*****MENU*****"); - length3 = sprintf(buffer2,"RANGE"); - length3 = sprintf(buffer3,"PARAMETERS"); - length3 = sprintf(buffer4,"%iCm to %iCm",r5,r6); - lcd.printString(buffer1,0,0); - lcd.printString(buffer2,0,1); - lcd.printString(buffer3,0,2); - lcd.printString(buffer4,0,3); - break; - case 5: - - if (g_sw2_flag) { - g_sw2_flag = 0; // if it has, clear the flag - if (r7 == 300) { - r7 = r6; - } else { - r7 += 1; - } - } - - length2 = sprintf(buffer1,"*****MENU*****"); - length3 = sprintf(buffer2,"RANGE"); - length3 = sprintf(buffer3,"PARAMETERS"); - length3 = sprintf(buffer4,"%iCm to %iCm",r6,r7); - lcd.printString(buffer1,0,0); - lcd.printString(buffer2,0,1); - lcd.printString(buffer3,0,2); - lcd.printString(buffer4,0,3); - break; - - default: - lcd.clear(); - // save(); - return; +/** +Save function saving settings +@param bright - Backlight setting +@param units - Metric or Imperial settings +@param offset - offest distance setting +@param check_flag - Saves a collision alert +@param r1 - upper limit for alert 1 +@param r2 - upper limit for alert 2 +@param r3 - upper limit for alert 3 +@param r4 - upper limit for alert 4 +@param r5 - upper limit for alert 5 +@param r6 - upper limit for alert 6 +@param r7 - upper limit for alert 7 +@code +{ + fp = fopen("/sd/settings.txt", "w"); + if (fp == NULL) { // if it can't open the file then print error message + serial.printf("Error! Unable to open file!\n"); + } else { // opened file so can write + serial.printf("Writing to file...."); + fprintf(fp, "%f,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i",bright,units,offset,check_flag,r1,r2,r3,r4,r5,r6,r7); // ensure data type matches + serial.printf("Done.\n"); + fclose(fp); // ensure you close the file after writing } } +@endcode +*/ +void save(); + +/** +Inturupt flag for button 2 +@code +{ + g_sw2_flag = 1; //set flag in ISR by button 2 @param g_sw2_flag 0 or 1 } @endcode */ -void submenu(); -void save(); -void load(); +void sw2_isr(); + +/** +Inturupt flag for button 1 +@code +{ + g_sw1_flag = 1; //set flag in ISR by button 2 @param g_sw1_flag 0 or 1 +} +@endcode +*/ +void sw1_isr(); + +/** +Flag used with ticker for flashing of LEDs +@code +{ + g_timer_flag_led = 1; // set flag in ISR by timer_isr_led @param g_timer_flag_led 0 or 1 +} +@endcode +*/ +void timer_isr_led(); + +/** +Flag used for Ticker controlling SRF02 sensor reading +@code +{ + g_timer_flag_srf02 = 1; // set flag in ISR by ticker_srf02 @param g_timer_flag_srf02 0 or 1 +} +@endcode +*/ +void timer_isr_srf02(); + +/** +Flag raised for incrementing standby level +@code +{ + g_timer_flag_standby = 1; // set flag in ISR by ticker_tone @param g_timer_flag_tone 0 or 1 +}# +@endcode +*/ +void timer_isr_standby(); #endif \ No newline at end of file