I want to use the joystick to control the menu items, it can only show the items in"displayMain_menu", I cant control it. Can someone help me? Based on Mbed OS 6, stm32.
#include “mbed.h”
#include “Joystick.h”
#include “N5110.h”
#include “DHT.h”
//#include “ManMode.h”
// main() runs in its own thread in the OS
N5110 lcd(PC_7, PA_9, PB_10, PB_5, PB_3, PA_10);
Joystick joystick(PC_3, PC_2);
DHT sensor(PA_1,DHT22);
//void displayTMP();
int menu =0;
void Joy2numConvert();
void main_menu();
void select_term();
void displayMain_menu();
void updateMenu();
// Manegement mode
int main_Man();
void menu_Man();
void display_Manmode();
void set_triggerTMP();
void set_triggerHum();
int main_op();
int main()
{
joystick.init();
lcd.init(LPH7366_1); //initialise for LPH7366-1 LCD (Options are LPH7366_1 and LPH7366_6)
lcd.setContrast(0.55); //set contrast to 55%
lcd.setBrightness(0.5);
lcd.clear();
//oid main_menu();
while (true) {
Joy2numConvert();
updateMenu();
//main_op() ;
}
}
void Joy2numConvert(){
if (joystick.get_direction()== N){
printf(" Direction: N\n");
menu++;
updateMenu();
wait_us(1000);
}
else if(joystick.get_direction()== S){
printf(" Direction: S\n");
menu--;
updateMenu();
wait_us(10000);
}
}
void updateMenu(){
switch(menu)
{
case 0:
main_menu();
break;
case 1:
main_Man();
break;
default: break;
}
}
void main_menu(){
lcd.clear();
displayMain_menu();
}
void displayMain_menu(){
lcd.printString(" Select Mode ", 0, 1);
lcd.printString(" Manage Mode ", 0, 3);
lcd.printString("Operation Mode ", 0, 4);
lcd.refresh();
}
int main_Man(){
menu_Man();
return 0;
}
void menu_Man(){
display_Manmode();
}
void display_Manmode(){
lcd.clear();
lcd.printString(" Set Trigger “, 0, 0);
lcd.printString(” Humidity",10,1);
lcd.printString(" Set Trigger ",0,3);
lcd.printString(“Temperature”,9,4);
}