ELEC2645 (2019/20) / Mbed 2 deprecated el18loc_final

Dependencies:   mbed

Revision:
13:27300c533dd1
Parent:
12:7a399a476cfd
Child:
14:9cfe0041cc4e
diff -r 7a399a476cfd -r 27300c533dd1 Menu/Menu.cpp
--- a/Menu/Menu.cpp	Fri May 08 20:08:36 2020 +0000
+++ b/Menu/Menu.cpp	Sat May 09 13:45:23 2020 +0000
@@ -21,9 +21,16 @@
     printmainmenu(lcd); //prints menu to display
     int menuflag=1; //sets flag
     while (menuflag==1) {
-        s=scroll(lcd, pad);
+        s=scroll(lcd, pad, submenu, menusize);
         if (s==1) {
             printmainmenu(lcd);
+            submenu++;
+            wait_ms(200);
+        }
+        if (s==-1) {
+            printmainmenu(lcd);
+            submenu--;
+            wait_ms(200);
         }
         if ( pad.A_pressed())  { //selects
             // printf("A pressed\n");
@@ -34,7 +41,7 @@
     }
     while (1) {
         if (submenu==1) { //waveform submenu launch
-            subwaveforms(lcd, pad, submenu);
+            subwaveforms(lcd, pad);
             break;
         }
         if (submenu==2) { //instructions submenu launch
@@ -48,7 +55,7 @@
     }
 }
 
-void Menu::subwaveforms(N5110 &lcd, Gamepad &pad, int submenu) //waveforms sub
+void Menu::subwaveforms(N5110 &lcd, Gamepad &pad) //waveforms sub
 {
     menusize=3;
     g_selecty=10;
@@ -59,15 +66,18 @@
     lcd.printString("Waveforms:",3,0);
     printsubwaveforms(lcd);
     while (menuflag==1) { //looped
-        s=scroll(lcd,pad);
+        s=scroll(lcd,pad,submenu,menusize);
+        //printf("S= %d",s);
         if (s==1) {
             printsubwaveforms(lcd);
             submenu++;
+            wait_ms(200);
         }
         if (s==-1) {
             printsubwaveforms(lcd);
             submenu--;
-            }
+            wait_ms(200);
+        }
         if (pad.A_pressed())  { //go back menu
             // printf("A pressed\n");
             printf("Submenu: %d selected\n", submenu); //debug
@@ -173,40 +183,42 @@
     lcd.refresh();
 }
 
-int Menu::scroll(N5110 &lcd, Gamepad &pad) //checks srolling
+int Menu::scroll(N5110 &lcd, Gamepad &pad, int submenu, int menusize) //checks srolling
 {
     int d=scroll_check(pad);
     if(d != 0) {
-        if (d==5)  { //N scrolls up
-            //printf("N \n"); //debug
-            g_selecty=g_selecty+8; //line size=8
-            submenu++;
-            if (submenu > menusize) { //3 items in menu stops overflow
-                submenu = submenu-1;
-                g_selecty = g_selecty-8;
+        if (d==1)  { //N scrolls up
+            printf("N \n"); //debug
+            submenu--;
+            g_selecty=g_selecty-8; //line size=8
+            if (submenu<=0) { //3 items in menu stops overflow
+                submenu++;
+                g_selecty = g_selecty+8;
+                return(0);
             }
             //printmainmenu(lcd); //reprints main
-            //prntf("SubMenu= %d\n", submenu); //debug
+            printf("SubMenu= %d\n", submenu); //debug
             return(-1);
         }
-        if (d==1)  { //S scrolls down
-            //printf("S \n");
-            g_selecty=g_selecty-8;
-            submenu=submenu-1;
-            if (submenu <=0) { //stops overflow
-                submenu = submenu+1;
-                g_selecty = g_selecty+8;
+        if (d==5)  { //S scrolls down
+            printf("S \n");
+            submenu++;
+            g_selecty=g_selecty+8;
+            if (submenu >menusize) { //stops overflow
+                submenu--;
+                g_selecty = g_selecty-8;
+                return(0);
             }
             //printmainmenu(lcd); //reprints menu
-            //printf("SubMenu= %d\n", submenu); //debug
+            printf("SubMenu= %d\n", submenu); //debug
             return(1);
         }
         wait_ms(200); //debounce
 
-    } else {
-        return(0);
-    }
+    } 
+    return(0);
 }
+
 int Menu::scroll_check (Gamepad &pad)
 {
     return(pad.get_direction()); //checks for stick