Level 2 Project Range Device
Dependencies: N5110 SDFileSystem SRF02 TMP102 mbed
Fork of Ranger by
Revision 8:fe6ebe807b9d, committed 2016-04-27
- Comitter:
- el15pjt
- Date:
- Wed Apr 27 09:09:55 2016 +0000
- Parent:
- 7:14cfb0df30e6
- Child:
- 9:bc259fc22fa2
- Commit message:
- Prior to tidying;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| main.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Apr 25 10:08:05 2016 +0000
+++ b/main.cpp Wed Apr 27 09:09:55 2016 +0000
@@ -6,11 +6,13 @@
#include "main.h"
#include "SDFileSystem.h"
-Serial serial(USBTX, USBRX); // for PC debug
+//Serial serial(USBTX, USBRX); // for PC debug
int main()
{
+ int d = 0;
+ int myarray[9];
setup();
lcd.init(); // Initiate LCD
/*
@@ -45,9 +47,9 @@
int r5;
int r6;
int r7;
- int offset; // create suitable variables to store the data in the file
- float bright;
- float value;
+ int offset;
+ float bright;
+ float value;
int i;
// in this example, we keep reading (using fscanf) until we reach
@@ -62,9 +64,10 @@
}
}
*/
+
while(1) {
- if (g_sw1_flag) {
+ if (g_sw1_flag) { /// Event triggered inturupt to call the menu and reset page numbers
g_sw1_flag = 0;
page = 0;
subpage = 0;
@@ -73,6 +76,7 @@
}
if (g_timer_flag_srf02) {
+
g_timer_flag_srf02 = 0; // if it has, clear the flag
if (units == METRIC) {
distance = srf02.getDistanceCm();
@@ -82,41 +86,32 @@
distance = distance -(offset*c);
}
-
-
-
-
-
-
-
- if (d == 9) {
+ if (d == 10) {
d = 0;
} else {
d++;
}
myarray[d] = distance;
- totaldistance = 0;
- for (i = 0; i < 10; i++) {
- totaldistance = totaldistance+myarray[i];
+ int totaldistance = 0;
+ for (int i = 0; i < 9; i++) {
+ int totaldistance = totaldistance+myarray[i];
}
- avgdistance = totaldistance;
+ avgdistance = totaldistance/9;
}
-
-
-
-
-
-
-
setalert();
lcdoutput();
- setbuzzer();
+ if (!alert == 0) {
+ if (buzz_flag == 0) {
+ setbuzzer();
+ }
+ }
setleds();
sleep();
}
}
+
void lcdoutput()
{
/**
@@ -139,25 +134,38 @@
switch (standby) {
case 1:
+ if (check_flag == 1) {
+ sprintf(buffer4,"COLLISIONCHECK");
+ }
lcd.clear();
sprintf(buffer,"**PATH CLEAR**");
lcd.printString(buffer,0,0);
+ lcd.printString(buffer4,0,5);
lcd.refresh();
break;
case 2:
+ if (check_flag == 1) {
+ sprintf(buffer4,"COLLISIONCHECK");
+ }
lcd.clear();
sprintf(buffer3,"TEMP = %.2f",T);
sprintf(buffer2,"TEMPERATER");
- lcd.printString(buffer3,4,3);
- lcd.printString(buffer2,12,2);
+ lcd.printString(buffer3,4,2);
+ lcd.printString(buffer2,12,1);
+ lcd.printString(buffer4,0,5);
+
break;
case 3:
+ if (check_flag == 1) {
+ sprintf(buffer4,"COLLISIONCHECK");
+ }
lcd.clear();
sprintf(buffer3,"TEMP = %.2f",T);
sprintf(buffer2,"TEMPERATER");
lcd.refresh();
- lcd.printString(buffer3,4,3);
- lcd.printString(buffer2,12,2);
+ lcd.printString(buffer3,4,2);
+ lcd.printString(buffer2,12,1);
+ lcd.printString(buffer4,0,5);
lcd.setBrightness(0);
break;
}
@@ -170,34 +178,35 @@
lcd.clear();
if (units == METRIC) {
- sprintf(buffer,"%i Cm",distance);
+ sprintf(buffer,"%0.2f Cm",avgdistance);
sprintf(buffer1,"****RANGE!****");
sprintf(buffer2,"DISTANCE");
- sprintf(buffer3,"%0.2f",avgdistance);
+
sprintf(buffer4,"Menu");
} else {
- sprintf(buffer,"%i Inches",distance);
+ sprintf(buffer,"%0.2f Inches",avgdistance);
sprintf(buffer1,"****RANGE!****");
sprintf(buffer2,"***DISTANCE***");
- sprintf(buffer2,"Menu");
+ sprintf(buffer4,"Menu");
}
lcd.printString(buffer,25,2);
lcd.printString(buffer1,0,0);
lcd.printString(buffer2,16,1);
lcd.printString(buffer4,0,5);
- lcd.printString(buffer3,0,3);
+
- float i = (r7/84);
- float distbar = (distance*i);
+ float h = (r7/84);
+ float distbar = (avgdistance*h);
//drawRect(int x0,int y0,int width,int height,int fill);
- lcd.drawRect(0,29,distbar,7,1); // MOVE BAR UP!!!!!!!!!!!!!!!!!!!!!!!!!
+ lcd.drawRect(0,29,distbar,7,1); //
lcd.refresh();
}
}
+
void setalert()
{
/** A fuction used to determin the alert level given a range with the use of IF statments
@@ -206,20 +215,21 @@
@returns alert
*/
- if (distance >= (r6*c) && distance < (r7*c)) { // r6 150 and r7 200
- alert = 1; /// alert 1 distance between preset 150Cm to 200Cm
- } else if (distance >= (r5*c) && distance < (r6*c)) {
+ if (avgdistance >= (r6*c) && avgdistance < (r7*c)) { // r6 150 and r7 200
+ alert = 1; /// alert 1 avgdistance between preset 150Cm to 200Cm
+ } else if (avgdistance >= (r5*c) && avgdistance < (r6*c)) {
alert = 2; /// alert 2 when between preset 90Cm to 150Cm
- } else if (distance >= (r4*c) && distance < (r5*c)) {
- alert = 3; /// alert 3 when distance between 60Cm to 90Cm
- } else if (distance >= (r3*c) && distance < (r4*c)) {
- alert = 4; /// alert 4 when distance between 40Cm and 60Cm
- } else if (distance >= (r2*c) && distance < (r3*c)) {
- alert = 5; ///alert 5 when distance between 20Cm and 40m
- } else if (distance >= (r1*c) && distance <= (r2*c)) { //r1 3 and r2 20
- alert = 6; ///alert 6 when distance between 1 and 20
- } else if (distance <=(r1*c)) {
- alert = 7; ///alert 7 when distance below 1Cm
+ } else if (avgdistance >= (r4*c) && avgdistance < (r5*c)) {
+ alert = 3; /// alert 3 when avgdistance between 60Cm to 90Cm
+ } else if (avgdistance >= (r3*c) && avgdistance < (r4*c)) {
+ alert = 4; /// alert 4 when avgdistance between 40Cm and 60Cm
+ } else if (avgdistance >= (r2*c) && avgdistance < (r3*c)) {
+ alert = 5; ///alert 5 when avgdistance between 20Cm and 40m
+ } else if (avgdistance >= (r1*c) && avgdistance <= (r2*c)) { //r1 3 and r2 20
+ alert = 6; ///alert 6 when avgdistance between 1 and 20
+ } else if (avgdistance <=(r1*c)) {
+ alert = 7; ///alert 7 when avgdistance below 1Cm
+ check_flag = 1;
} else {
alert = 0; /// alert 0 all else
}
@@ -259,32 +269,28 @@
void setbuzzer()
{
- int beat;
/**
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
*/
- if (g_timer_flag_tone) {
- g_timer_flag_tone = 1;
- if (beat == 10) {
- beat = 0;
- } else {
- beat++;
- }
-
-
+ buzzer.period (1.0/1000.0);
+ buzzer = 0.5;
+ buzzoff.attach(&flip, Alertlevel[alert].toneon);
+}
- if (Alertlevel[alert].toneon < beat) {
- buzzer.period (1/10000);
- buzzer = 0.5;
- } else {
- buzzer = 0.0;
- }
+void flip()
+{
+ buzz_flag = 1;
+ buzzer = 0.0;
+ buzzon.attach(&buzzflag,Alertlevel[alert].toneoff);
+}
-
- }
+void buzzflag()
+{
+ buzz_flag = 0;
+ return;
}
void backlight ()
@@ -347,7 +353,7 @@
sprintf(buffer2,"*****MENU*****");
sprintf(buffer1,"BACKLIGHT");
sprintf(buffer3,"%.0f%%",bright*100);
- sprintf(buffer4,"Next Adj");
+ sprintf(buffer4,"NEXT ADJ");
lcd.printString(buffer2,0,0);
lcd.printString(buffer1,0,1);
lcd.printString(buffer3,0,2);
@@ -370,7 +376,7 @@
length2 = sprintf(buffer2,"*****MENU*****");
length1 = sprintf(buffer1,"OFFSET");
length3 = sprintf(buffer3,"%i",offset);
- sprintf(buffer4,"Next Adj");
+ sprintf(buffer4,"NEXT ADJ");
lcd.printString(buffer2,0,0);
lcd.printString(buffer1,0,1);
lcd.printString(buffer3,0,2);
@@ -400,15 +406,29 @@
}
sprintf(buffer2,"*****MENU*****");
sprintf(buffer1,"UNITS");
- sprintf(buffer4,"Next Adj");
+ sprintf(buffer4,"NEXT ADJ");
lcd.printString(buffer2,0,0);
lcd.printString(buffer1,0,1);
lcd.printString(buffer4,0,5);
lcd.refresh();
break;
+ case 3:
+ if (g_sw2_flag) {
+ g_sw2_flag = 0; // if it has, clear the flag
+ check_flag =0;
+ }
+ length2 = sprintf(buffer3,"*****MENU*****");
+ length3 = sprintf(buffer1,"CLEAR");
+ length3 = sprintf(buffer2,"COLLISION");
+ sprintf(buffer4,"NEXT YES");
+ lcd.printString(buffer3,0,0);
+ lcd.printString(buffer1,0,1);
+ lcd.printString(buffer2,0,2);
+ lcd.printString(buffer4,0,5);
- case 3:
+ break;
+ case 4:
if (g_sw2_flag) {
g_sw2_flag = 0; // if it has, clear the flag
@@ -417,7 +437,7 @@
length2 = sprintf(buffer3,"*****MENU*****");
length3 = sprintf(buffer1,"RANGE");
length3 = sprintf(buffer2,"PARAMETERS");
- sprintf(buffer4,"Next Adj");
+ sprintf(buffer4,"NEXT ADJ");
lcd.printString(buffer3,0,0);
lcd.printString(buffer1,0,1);
lcd.printString(buffer2,0,2);
@@ -464,8 +484,6 @@
return;
}
}
- // lcd.refresh();
-
}
void submenu()
{
@@ -491,7 +509,7 @@
length3 = sprintf(buffer2,"RANGE");
length3 = sprintf(buffer3,"PARAMETERS");
length4 = sprintf(buffer4,"1Cm to %iCm",r2);
- sprintf(buffer,"Next Adj");
+ sprintf(buffer,"NEXT ADJ");
lcd.printString(buffer1,0,0);
lcd.printString(buffer2,0,1);
lcd.printString(buffer3,0,2);
@@ -514,7 +532,7 @@
sprintf(buffer2,"RANGE");
sprintf(buffer3,"PARAMETERS");
sprintf(buffer4,"%iCm to %iCm",r2,r3);
- sprintf(buffer,"Next Adj");
+ sprintf(buffer,"NEXT ADJ");
lcd.printString(buffer1,0,0);
lcd.printString(buffer2,0,1);
lcd.printString(buffer3,0,2);
@@ -537,7 +555,7 @@
sprintf(buffer2,"RANGE");
sprintf(buffer3,"PARAMETERS");
sprintf(buffer4,"%iCm to %iCm",r3,r4);
- sprintf(buffer,"Next Adj");
+ sprintf(buffer,"NEXT ADJ");
lcd.printString(buffer1,0,0);
lcd.printString(buffer2,0,1);
lcd.printString(buffer3,0,2);
@@ -560,7 +578,7 @@
sprintf(buffer2,"RANGE");
sprintf(buffer3,"PARAMETERS");
sprintf(buffer4,"%iCm to %iCm",r4,r5);
- sprintf(buffer,"Next Adj");
+ sprintf(buffer,"NEXT ADJ");
lcd.printString(buffer1,0,0);
lcd.printString(buffer2,0,1);
lcd.printString(buffer3,0,2);
@@ -582,7 +600,7 @@
length3 = sprintf(buffer2,"RANGE");
length3 = sprintf(buffer3,"PARAMETERS");
length3 = sprintf(buffer4,"%iCm to %iCm",r5,r6);
- sprintf(buffer,"Next Adj");
+ sprintf(buffer,"NEXT ADJ");
lcd.printString(buffer1,0,0);
lcd.printString(buffer2,0,1);
lcd.printString(buffer3,0,2);
@@ -603,7 +621,7 @@
length2 = sprintf(buffer1,"*****MENU*****");
length3 = sprintf(buffer2,"RANGE");
length3 = sprintf(buffer3,"PARAMETERS");
- sprintf(buffer,"Next Adj");
+ sprintf(buffer,"NEXT ADJ");
length3 = sprintf(buffer4,"%iCm to %iCm",r6,r7);
lcd.printString(buffer1,0,0);
lcd.printString(buffer2,0,1);
@@ -623,16 +641,15 @@
{
ticker.attach(&timer_isr_led,0.35); /// Attach the ticker for the flashig LEDs
ticker_srf02.attach(&timer_isr_srf02,0.1); /// Attach the ticker for collecting a range reading
- ticker_tone.attach(&timer_isr_tone,1); /// Attach the ticker which controls the off time of the buzzer 0.1 = 10 beats per second
+ // ticker_tone.attach(&timer_isr_tone,0.1); /// Attach the ticker which controls the off time of the buzzer 0.1 = 10 beats per second
ticker_standby.attach(&timer_isr_standby,3.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
- /**Set up LEDs switches and LEDS
- @param r_led 1 or 0
- @param g_led 1 or 0
- @param b_led 1 or 0
- */
+
+ r_led = 1;
+ b_led = 1;
+ g_led = 1;
rr_led = 0;
a_led = 0;
gg_led = 0;
--- a/main.h Mon Apr 25 10:08:05 2016 +0000
+++ b/main.h Wed Apr 27 09:09:55 2016 +0000
@@ -26,15 +26,13 @@
#define IMPERIAL 0
+
/**
@namespace LEDs
@brief Output for Alert LEDs
*/
-/** Red LED connect to pin PTA1*/
DigitalOut rr_led (PTA1);
-/** amber LED connect to pin PTC2*/
DigitalOut a_led (PTC2);
-/** Green LED connect to pin PTB23*/
DigitalOut gg_led(PTB23);
/**
@@ -60,13 +58,14 @@
/**
@namespace Timers
-@brief Tickers and time outs
+@brief Tickers and Timeouts
*/
Ticker ticker;
Ticker ticker_srf02;
-Ticker ticker_tone;
+//Ticker ticker_tone;
Ticker ticker_standby;
Timeout buzzoff;
+Timeout buzzon;
// Create TMP102 object
TMP102 tmp102(I2C_SDA,I2C_SCL);
@@ -85,13 +84,14 @@
/// Connections to SD card holder on K64F (SPI interface)
SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS
-
+FILE *fp;
/**
@namespace TimerFlags
@brief Flags for use with timed interupts
*/
volatile int g_timer_flag_led = 0, g_timer_flag_srf02 = 0, g_timer_flag_tone = 0; /** Flag rised by interupts*/
volatile int g_timer_flag_standby = 0;
+volatile int buzz_flag = 0;
/**
@namespace ButtonFlages
@brief Flags for use with button interupts
@@ -102,16 +102,8 @@
@namespace RangePresets
@brief Preset range of the differant alert levels
*/
-int r1 = 3,/*!< Upper limit of alert 1 */r2 = 20,/*!< Upper limit of alert 2 */r3 = 40,/*!< Upper limit of alert 3 */r4 = 60,/*!< Upper limit of alert 4 */r5 = 80,/*!< Upper limit of alert 5 */r6 = 100,/*!< Upper limit of alert 6 */r7 = 120; /*!< Upper limit of alert 7 */
-
-FILE *fp;
-
-int myarray[9];/*!< array to hold last ten range readings */
-int d =0;
-int t;
-int i;
+int r1 = 3,/*!< 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 = 40,/*!< Upper limit of alert 5 */r6 = 50,/*!< Upper limit of alert 6 */r7 = 60; /*!< Upper limit of alert 7 */
float avgdistance;
-int totaldistance;
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 */
@@ -122,8 +114,9 @@
int length, length1, length2, length3, length4;
char buffer[14], buffer1[14], buffer2[14], buffer3[14], buffer4[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
float T;
-int standby =1;
+int standby = 1;
float c =1; /// convertion factor from Cm to inch
+int check_flag = 0;
struct Alertlevel {
@@ -133,28 +126,117 @@
char frr_led;///FLASHING RED LED state
char fa_led; ///FLASHING AMBER LED state
char fgg_led; ///FLASHING GREEN LED state
- int toneon;
- int toneoff;
- }; /*!< Stucture to hold all outputs. Steady LEDs, Flashing LEDs, Tone on, Tonne off*/
+ float toneon;
+ float toneoff;
+}; /*!< Stucture to hold all outputs. Steady LEDs, Flashing LEDs, Tone on, Tonne off*/
typedef const struct Alertlevel STyp;
STyp Alertlevel[8] = {
{LOW,LOW,LOW,LOW,LOW,LOW,0,1}, // no output
- {LOW,LOW,LOW,LOW,LOW,HIGH,1,8}, //flash green
- {LOW,LOW,HIGH,LOW,LOW,LOW,2,7}, //steady green
- {LOW,LOW,HIGH,LOW,HIGH,LOW,4,5}, //flash amber
- {LOW,HIGH,HIGH,LOW,LOW,LOW,6,3}, //steady amber
- {LOW,HIGH,HIGH,HIGH,LOW,LOW,8,1}, //flash red
- {HIGH,HIGH,HIGH,LOW,LOW,LOW,9,0},// steady red
- {LOW,LOW,LOW,HIGH,HIGH,HIGH,9,0} // all flash
+ {LOW,LOW,LOW,LOW,LOW,HIGH,0.1,0.9}, //flash green
+ {LOW,LOW,HIGH,LOW,LOW,LOW,0.1,0.5}, //steady green
+ {LOW,LOW,HIGH,LOW,HIGH,LOW,0.1,0.3}, //flash amber
+ {LOW,HIGH,HIGH,LOW,LOW,LOW,0.2,0.2}, //steady amber
+ {LOW,HIGH,HIGH,HIGH,LOW,LOW,0.2,0.1}, //flash red
+ {HIGH,HIGH,HIGH,LOW,LOW,LOW,0.1,0.1},// steady red
+ {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
+@code
+if (alert == 0) {
+if (g_timer_flag_standby) {
+ g_timer_flag_standby = 0;
+ T = tmp102.get_temperature();
+ standby++;
+ if (standby >3) {
+ standby = 3;
+ }
+ }
+
+ switch (standby) {
+ case 1:
+ if (check_flag == 1) {
+ sprintf(buffer4,"COLLISIONCHECK");
+ }
+ lcd.clear();
+ sprintf(buffer,"**PATH CLEAR**");
+ lcd.printString(buffer,0,0);
+ lcd.printString(buffer4,0,5);
+ lcd.refresh();
+ break;
+ case 2:
+ if (check_flag == 1) {
+ sprintf(buffer4,"COLLISIONCHECK");
+ lcd.clear();
+ sprintf(buffer3,"TEMP = %.2f",T);
+ sprintf(buffer2,"TEMPERATER");
+ lcd.printString(buffer3,4,2);
+ lcd.printString(buffer2,12,1);
+ lcd.printString(buffer4,0,5);
+
+ break;
+ case 3:
+ if (check_flag == 1) {
+ sprintf(buffer4,"COLLISIONCHECK");
+ lcd.clear();
+ sprintf(buffer3,"TEMP = %.2f",T);
+ sprintf(buffer2,"TEMPERATER");
+ lcd.refresh();
+ lcd.printString(buffer3,4,2);
+ lcd.printString(buffer2,12,1);
+ lcd.printString(buffer4,0,5);
+ lcd.setBrightness(0);
+ break;
+ }
+ }
+
+ //If alert isn't 0 then the distance is to be dispayed alonng with the the distance bar
+ else {
+ lcd.setBrightness(bright);
+ standby =0;
+ lcd.clear();
+
+ if (units == METRIC) {
+ sprintf(buffer,"%0.2f Cm",avgdistance);
+ sprintf(buffer1,"****RANGE!****");
+ sprintf(buffer2,"DISTANCE");
+
+ sprintf(buffer4,"Menu");
+
+ } else {
+ sprintf(buffer,"%0.2f Inches",avgdistance);
+ sprintf(buffer1,"****RANGE!****");
+ sprintf(buffer2,"***DISTANCE***");
+ sprintf(buffer4,"Menu");
+ }
+ lcd.printString(buffer,25,2);
+ lcd.printString(buffer1,0,0);
+ lcd.printString(buffer2,16,1);
+ lcd.printString(buffer4,0,5);
+
+
+ float h = (r7/84);
+ float distbar = (avgdistance*h);
+ //drawRect(int x0,int y0,int width,int height,int fill);
+ lcd.drawRect(0,29,distbar,7,1); //
+ lcd.refresh();
+@endcode
+*/
void lcdoutput();
+
void timer_isr_led();
void timer_isr_srf02();
void timer_isr_tone();
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
@returns lcd.setbrightness
@@ -168,6 +250,7 @@
@endcode
*/
void backlight();
+void Getdistance();
void init_K64F();
void sw2_isr();
void sw1_isr();
@@ -339,151 +422,151 @@
}
@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;
- }
+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;
+ }
+ 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:
+ case 1:
- if (g_sw2_flag) {
- g_sw2_flag = 0; // if it has, clear the flag
- if (r3 == r4) {
- r3 = r2;
- } else {
- r3 += 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;
+ 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:
+ case 2:
- if (g_sw2_flag) {
- g_sw2_flag = 0; // if it has, clear the flag
- if (r4 == r5) {
- r4 = r3;
- } else {
- r4 += 1;
- }
+ if (g_sw2_flag) {
+ g_sw2_flag = 0; // if it has, clear the flag
+ if (r4 == r5) {
+ r4 = r3;
+ } else {
+ r4 += 1;
}
+ }
- 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;
+ 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:
+ case 3:
- if (g_sw2_flag) {
- g_sw2_flag = 0; // if it has, clear the flag
- if (r5 == r6) {
- r5 = r4;
- } else {
- r5 += 1;
- }
+ 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:
+ 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;
- }
+ 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:
+ 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;
- }
+ 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;
+ 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;
- }
- }
+ default:
+ lcd.clear();
+ // save();
+ return;
}
- @endcode
- */
- void submenu();
- void save();
- void load();
- void standby1();
+}
+}
+@endcode
+*/
+void submenu();
+void save();
+void load();
+void GetDistance();
#endif
\ No newline at end of file
