void top_menu_function_5() //Replace this with the actual function of menu item #5
{
int choice=yn_dialog("Start");
lcd.clear();
lcd.setCursor(0,1);
lcd.print(choice); // Display the user choice one more time
delay(user_input4);
int motorspeed = 100; // This sets up the speed the motor will turn
motor2.step(user_input3, BACKWARD, SINGLE); //Move the motor forward by the number of "Steps per frame
motor2.release(); // make sure the motor is at rest.
wait_on_escape(4000);
}
to...
void top_menu_function_5() //Replace this with the actual function of menu item #5
{
int yn_dialog("Start");
lcd.clear();
lcd.setCursor(0,1);
//lcd.print(choice); // Display the user choice one more time
delay(user_input4);
int motorspeed = 100; // This sets up the speed the motor will turn
motor2.step(user_input3, BACKWARD, SINGLE); //Move the motor forward by the number of "Steps per frame
motor2.release(); // make sure the motor is at rest.
wait_on_escape(4000);
}
I get this error...
My_Menu_2_0.cpp: In function 'void top_menu_function_5()':
menu:202: error: invalid conversion from 'const char*' to 'int'
I'm using phi_prompt as a menu for a sketch with a LCD.
This is an extract from the document on phi_prompt.
int yn_dialog(char msg[]);
Parameters:
This renders a YES/NO dialog so the user can choose YES or NO.
Return values:
1 for YES and 0 for NO so the program can decide what to do in case of YES and NO. The dialog auto scales to occupy the entire display so you don?t have to specify you have a 20X4 display or 16*2 display. See fig. 6-3 below.
Eg. int choice=yn_dialog(“Engage death ray now?”);
(a)
(b)
Figure 6-3. YES/NO dialog auto scales on 16X2 and 20X4 displays. (a) 16X2 display. (b) 20X4 display. Intended message was “Engage death ray now?”. The text is automatically wrapped to occupy multiple lines. The message will be clipped if it doesn?t fit on a smaller display.
My apologies I got it wrong in the second part of the code, my intention is to change from a yes/no to just a OK. the changed code should be...
void top_menu_function_5() //Replace this with the actual function of menu item #5
{
int ok_dialog("Start");
lcd.clear();
lcd.setCursor(0,1);
//lcd.print(choice); // Display the user choice one more time
delay(user_input4);
int motorspeed = 100; // This sets up the speed the motor will turn
motor2.step(user_input3, BACKWARD, SINGLE); //Move the motor forward by the number of "Steps per frame
motor2.release(); // make sure the motor is at rest.
wait_on_escape(4000);
}
And the extract from the document...
int ok_dialog(char msg[]);
Parameters:
This renders an OK dialog. Primarily you want to show the user a message and the user needs to press a key to continue. Otherwise the function keeps waiting. It doesn?t actually return a value. The return value type is there to be consistent with the YES/NO dialog and any future dialog functions. The OK dialog just needs the char array that has the message to show to the user. The message will be truncated if there is not enough space. The dialog auto scales to occupy the entire display so you don?t have to specify you have a 20X4 display or 16*2 display. See fig. 6-2 below.
Eg. ok_dialog(“Death ray was engaged. Annihilation in progress...”);
You are getting confused here. ok_dialog is a function. It returns something. That something needs to go somewhere. Then you can test the somewhere. Like:
int proceed = ok_dialog("Start");
if (proceed)
{
// good to go
}