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: mbed
Diff: Menu/Menu.cpp
- Revision:
- 29:207111ffd6e6
- Parent:
- 17:358987e9f30e
- Child:
- 30:08cc4ec58d07
--- a/Menu/Menu.cpp Mon May 25 10:46:02 2020 +0000 +++ b/Menu/Menu.cpp Mon May 25 20:00:31 2020 +0000 @@ -1,6 +1,8 @@ #include "mbed.h" #include "Menu.h" +//Global Variables +volatile int g_mainmenu_flag; //objects Front front; @@ -15,12 +17,12 @@ // PUBLIC methods--------------------------------------------------------------- void Menu::mainmenu(N5110 &lcd, Gamepad &pad) //main menu { - menusize=4; + g_mainmenu_flag=0; //Globals Init g_selecty=10; - submenu=1; //initialises starting point + submenu=menuflag=1; //Variables Init + menusize=4; printmainmenu(lcd); //prints menu to display - int menuflag=1; //sets flag - pad.reset_buttons(); + pad.reset_buttons();//elimnates Prev Button Press while (menuflag==1) { s=scroll(lcd, pad, submenu, menusize); if (s==1) { @@ -35,86 +37,78 @@ } if ( pad.A_pressed()) { //selects // printf("A pressed\n"); - printf("SubMenu %d selected\n", submenu); + //printf("SubMenu %d selected\n", submenu); wait_ms(200); //debounce menuflag=0; } } - while (1) { - if (submenu==1) { //waveform submenu launch - subwaveforms(lcd, pad); - break; - } - if (submenu==2) { //instructions submenu launch + switch (submenu) { + case 1: + subwaveforms(lcd,pad); + case 2: subinstructions(lcd,pad); - break; - } - if (submenu==3) { //credits subemnu launch - subcredits(lcd, pad); - break; - } - if (submenu==4) { //credits subemnu launch - subsettings(lcd, pad); - break; - } + case 3: + subsettings(lcd,pad); + case 4: + subcredits(lcd,pad); } } void Menu::subwaveforms(N5110 &lcd, Gamepad &pad) //waveforms sub { - menusize=3; - g_selecty=10; - submenu=1; //initialises starting point - int menuflag=1; //resets flag - printf("Waveforms menu \n"); - lcd.clear(); //clear buffer - lcd.printString("Waveforms:",3,0); - printsubwaveforms(lcd); - pad.reset_buttons(); - while (menuflag==1) { //looped - s=scroll(lcd,pad,submenu,menusize); - //printf("S= %d",s); - if (s==1) { - printsubwaveforms(lcd); - submenu++; - wait_ms(200); + while (1) { + g_selecty=10; //initialises Global var + submenu=menuflag=1; //initialises Variables + menusize=3; + //printf("Waveforms menu \n"); //Debug + printsubwaveforms(lcd); + pad.reset_buttons(); + while (menuflag==1) { //looped + s=scroll(lcd,pad,submenu,menusize); + if (s==1) { + printsubwaveforms(lcd); + submenu++; + wait_ms(200); + } + if (s==-1) { + printsubwaveforms(lcd); + submenu--; + wait_ms(200); + } + if (pad.A_pressed()) { //Select + //printf("Submenu: %d selected\n", submenu); //debug + wait_ms(200); //debounce + menuflag=0; //sets flag + } + if (pad.B_pressed()) { //go back menu + //printf("Main Menu selected\n"); //debug + submenu=0; + wait_ms(200); //debounce + menuflag=0; //sets flag + } } - 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 - wait_ms(200); //debounce - menuflag=0; //sets flag + if(submenu==0) { //allows main selected + mainmenu(lcd,pad); + break; } - if (pad.B_pressed()) { //go back menu - // printf("B pressed\n"); - printf("Main Menu selected\n"); //debug - submenu=0; - wait_ms(200); //debounce - menuflag=0; //sets flag + if(submenu>=1) { //allows waveform selected + front.frontrun(lcd,pad,submenu); } - } - - if(submenu==0) { //allows main selected mainmenu(lcd,pad); - } - if(submenu>=1) { //allows waveform selected - front.frontrun(lcd,pad,submenu); + break; } } void Menu::subinstructions(N5110 &lcd, Gamepad &pad) //instruction sub { menuflag=1; //sets flag - printf("Instructions menu \n"); + //printf("Instructions menu \n"); lcd.clear(); - lcd.printString("Instructions:",3,0); - subunavailiable(lcd); //currently unused + lcd.printString("Instructions:",2,0); + lcd.printString("See attached",3,1); + lcd.printString("User Manual",3,2); pad.reset_buttons(); + lcd.refresh(); while (menuflag==1) { if (pad.B_pressed()) { // printf("B pressed\n"); @@ -131,7 +125,7 @@ void Menu::subcredits(N5110 &lcd, Gamepad &pad) //credits sub menu { - printf("Credits \n"); + //printf("Credits \n"); lcd.clear(); lcd.printString("Credits",22,0); //prints credits to screen lcd.printString("Coded,Produced",0,1); @@ -143,8 +137,7 @@ pad.reset_buttons(); while (menuflag==1) { if (pad.B_pressed()) { //go back menu - // printf("B pressed\n"); - printf("Main Menu selected\n"); + //printf("Main Menu selected\n"); submenu=0; wait_ms(200); //debounce menuflag=0; //sets flag @@ -154,19 +147,17 @@ mainmenu(lcd,pad); } } + void Menu::subsettings(N5110 &lcd, Gamepad &pad) { + g_selecty=10; + submenu=menuflag=1; //initialises Variables menusize=3; - g_selecty=10; - submenu=1; //initialises starting point - menuflag=1; //resets flag - printf("Settings menu \n"); - lcd.clear(); //clear buffer + //printf("Settings menu \n"); printsubsettings(lcd); pad.reset_buttons(); while (menuflag==1) { //looped s=scroll(lcd,pad,submenu,menusize); - //printf("S= %d",s); if (s==1) { printsubsettings(lcd); submenu++; @@ -178,41 +169,39 @@ wait_ms(200); } if (pad.A_pressed()) { //go back menu - // printf("A pressed\n"); - printf("Submenu: %d selected\n", submenu); //debug + //printf("Submenu: %d selected\n", submenu); //debug wait_ms(200); //debounce menuflag=0; //sets flag } if (pad.B_pressed()) { //go back menu - // printf("B pressed\n"); - printf("Main Menu selected\n"); //debug + //printf("Main Menu selected\n"); //debug submenu=0; wait_ms(200); //debounce menuflag=0; //sets flag } } - - if(submenu==0) { //allows main selected - mainmenu(lcd,pad); - } - if(submenu==1) { //allows volume selected - volumerun(lcd,pad); - } - if(submenu==2) { //allows MIDI selected - MIDIsettings(lcd,pad); - } - if(submenu==3) { //allows contrast selected - contrastrun(lcd,pad); + switch (submenu) { + case 0: + mainmenu(lcd,pad); + case 1: + volumerun(lcd,pad); + case 2: + MIDIsettings(lcd,pad); + case 3: + contrastrun(lcd,pad); } } void Menu::volumerun(N5110 &lcd, Gamepad &pad) { + //printf("Volume Settings \n"); menuflag=1; //sets flag - printf("Volume Settings \n"); lcd.clear(); lcd.printString("Volume:",3,0); - subunavailiable(lcd); //currently unused + lcd.printString("Use screw",3,1); + lcd.printString("potentiometer",3,2); + lcd.printString("on rear",3,3); + lcd.refresh(); pad.reset_buttons(); while (menuflag==1) { if (pad.B_pressed()) { @@ -262,38 +251,35 @@ while (menuflag==1) { //looped s=scroll(lcd,pad,10,20); if (s!=s_1) { - printf("S= %d",s); + //printf("S= %d",s); if (s==1) { printcontrast(lcd,contrast); contrast=contrast+0.05f; lcd.setContrast(contrast); - printf("CONTRAST UP\n"); + //printf("CONTRAST UP\n"); wait_ms(200); } if (s==-1) { printcontrast(lcd,contrast); contrast=contrast-0.05f; lcd.setContrast(contrast); - printf("CONTRAST DOWN\n"); + //printf("CONTRAST DOWN\n"); wait_ms(200); } - if (pad.B_pressed()) { //go back menu - // printf("B pressed\n"); - printf("Main Menu selected\n"); //debug - submenu=0; - lcd.clear(); - lcd.printString("Contrast Set",12,3); - lcd.refresh(); - wait_ms(500); //debounce + display - menuflag=0; //sets flag - } + } + if (pad.B_pressed()) { //go back menu + // printf("B pressed\n"); + //printf("Main Menu selected\n"); //debug + submenu=0; + lcd.clear(); + lcd.printString("Contrast Set",3,3); + lcd.refresh(); + wait_ms(900); //debounce + display + menuflag=0; //sets flag } s=s_1; } - - if(submenu==0) { //allows main menu select - subsettings(lcd,pad); - } + subsettings(lcd,pad); } @@ -307,10 +293,11 @@ //SUBMENU TITLES lcd.printString("Waveforms",3,1); lcd.printString("Instructions",3,2); - lcd.printString("Credits",3,3); - lcd.printString("Settings",3,4); + lcd.printString("Settings",3,3); + lcd.printString("Credits",3,4); lcd.refresh(); //updates display } + void Menu::printsubwaveforms(N5110 &lcd) //prints subwaveforms menu { printf("Printing Waveforms menu\n"); @@ -326,7 +313,7 @@ void Menu::printsubsettings(N5110 &lcd) //prints settings menu { - printf("Printing Settings menu\n"); + //printf("Printing Settings menu\n"); lcd.clear(); lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value lcd.printString("Settings:",3,0); //title print @@ -344,9 +331,10 @@ lcd.printString("VISIBILITY",12,3); lcd.refresh(); } + void Menu::subunavailiable(N5110 &lcd) //for currently undeveloped menu { - printf("sub unavailiable\n"); + //printf("sub unavailiable\n"); lcd.printString("Unavailiable",3,1); lcd.refresh(); } @@ -356,20 +344,19 @@ int d=scroll_check(pad); if(d != 0) { if (d==1) { //N scrolls up - printf("N \n"); //debug + //printf("N \n"); //debug submenu--; g_selecty=g_selecty-8; //line size=8 - if (submenu<=0) { //3 items in menu stops overflow + if (submenu<=0) { //stops overflow submenu++; g_selecty = g_selecty+8; return(0); } - //printmainmenu(lcd); //reprints main - printf("SubMenu= %d\n", submenu); //debug + //printf("SubMenu= %d\n", submenu); //debug return(-1); } if (d==5) { //S scrolls down - printf("S \n"); + //printf("S \n"); submenu++; g_selecty=g_selecty+8; if (submenu >menusize) { //stops overflow @@ -377,12 +364,10 @@ 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 - } return(0); }