jomelo / lcdmenulib Goto Github PK
View Code? Open in Web Editor NEWCreate a tree menu. Use it with different lcd types / console output / ssh console.
Home Page: http://forum.arduino.cc/index.php?topic=73816.0
License: MIT License
Create a tree menu. Use it with different lcd types / console output / ssh console.
Home Page: http://forum.arduino.cc/index.php?topic=73816.0
License: MIT License
Hello,
Actually, we define the I2C address with the _LCDML_DISP_addr value .
Is it possible to have an fonction that change this value ?
My goal is to read the address from the EEPROM !!!
Thanks for your job !!!
I have a doubt about, what if i have a backend and display functions and i jump on menu to that display function also it jumps to the backend function or I need to call it on display function?
Regards and congrats by your new version
i had to add this to run the analogic read in setup function:
pinMode(A5, INPUT_PULLUP);
i don't use a keypad but a button and resistors "home made" ;)
See you
Hope it helps..
First of all, thank you for your library 👍
I was working on the example for u8G2, I found a quick way to highlight instead of having cursor at the beginning of the row, and I'd like to share it
in LCDML_DISPLAY, under //set cursor use
u8g2.setFontMode(1); u8g2.setDrawColor(2); u8g2.drawBox ((_LCDML_DISP_box_x0+_LCDML_DISP_cur_space_before),(_LCDML_DISP_box_y0 + ( _LCDML_DISP_font_h * (n + 1)-(_LCDML_DISP_font_h)+2)),( _LCDML_DISP_box_x1-_LCDML_DISP_scrollbar_w-3),( _LCDML_DISP_font_h) );
instead of
//u8g2.drawStr( _LCDML_DISP_box_x0+_LCDML_DISP_cur_space_before, _LCDML_DISP_box_y0 + _LCDML_DISP_font_h * (n + 1), _LCDML_DISP_cursor_char);
With the version V2 beta 2, the example LCDML_example_1_easy.ino return me always
C:\tmp\Arduino Compilateur\arduino-1.6.4\libraries\New_LiquidCrystal_V1.3.0\I2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
I use the last New_LiquidCrystal_V1.3.0
it's possible to jump between display functions, becase I tried and don't get expected results.
Per example I'm in a custom display function and with a user input control I want to jump to another display function and it doesn't do that (except by init screen to another disp func but not viceversa).
I used similar commands like:
LCDML_DISP_funcend();
LCDML_DISP_jumpToFunc(LCDML_FUNC_initscreen);
or viceversa (it doesn't work as is).
Help please
In definition
...
void function ## _loop_setup();
void function ## _loop();
void function ## _loop_end(); \
at the same time, it is not defined "function".
Please explain how it works or it is a bug and instead of a "function" it should be "LCDML_FUNC" ?
(Sorry for bad English)
This library has support to handling of millis() rollover or needs to be modified to do that?
If not has to be updated by modifing the cpp file and sketches also?
Regards
Dear
I'm using your library with a 3x16 lcd, but is it possible to use it with a dot-matrix lcd?
For example this lcd:
http://www.mouser.be/ProductDetail/Newhaven-Display/NHD-C12864A1Z-FSW-FBW-HTT/?qs=sGAEpiMZZMvkC18yXH9iIjqe6IqxYXYlNQS2QNbO9KE%3d
If so, how do I have to initialize this?
thanks in advance
Greetings
Best,
I'm currently using this library's example to create a menu, but unfortunately can't get my rotary encoder to work with it.
My two questions about it are:
Which way should the Rot.Encoder be wired up? Currently i'm using pin 10,11,12 as I think I've seen this in the code, is this correct? (10 as pin A, 11 as pin B, 12 for the switch output, switch is connected to 5V, common pin connected to ground.)
What do i have to edit/adjust in order to be able to use the rotary encoder with this library?
Looking forward to your reply.
A.
Also crossposted on:
https://forum.arduino.cc/index.php?topic=519339.0
This line make many problems on differnt controllers
Hello, I was curious if it is possible to create menu items programmatically by using a function. One section of my menu I want to be the names of files on an SD card (which will be limited), which I only know at runtime. This is something that would only happen once in the program's lifetime.
I note that the mode 2 doesn't exist now ! It's for simplify ?
It's possible to add suport to list or even better handling sd card files on this lib and display it on lcd screen?
Regards
// *********************************************************************
// *************** (5) CONTROL OVER JOYSTICK *********************
// *********************************************************************
#elif(_LCDML_CONTROL_cfg == 5)
// settings
#define _LCDML_CONTROL_analog_pinx A0
#define _LCDML_CONTROL_analog_piny A1
#define _LCDML_CONTROL_digitalread 33 //don't work with u8glib
// when you did not use a button set the value to zero
// #define _LCDML_CONTROL_analog_enter_min 612 // Button Enter
// #define _LCDML_CONTROL_analog_enter_max 1023
#define _LCDML_CONTROL_analog_up_min 612 // Button Up
#define _LCDML_CONTROL_analog_up_max 1023
#define _LCDML_CONTROL_analog_down_min 0 // Button Down
#define _LCDML_CONTROL_analog_down_max 412
// #define _LCDML_CONTROL_analog_back_min 0 // Button Back
// #define _LCDML_CONTROL_analog_back_max 412
#define _LCDML_CONTROL_analog_left_min 612 // Button Left
#define _LCDML_CONTROL_analog_left_max 1023
#define _LCDML_CONTROL_analog_right_min 0 // Button Right
#define _LCDML_CONTROL_analog_right_max 412
// *********************************************************************
// setup
void LCDML_CONTROL_setup()
{
// Serial.begin(9600);
pinMode (_LCDML_CONTROL_digitalread, INPUT);
}
// *********************************************************************
// loop
void LCDML_CONTROL_loop()
{
// check debounce timer
if((millis() - g_LCDML_DISP_press_time) >= _LCDML_DISP_cfg_button_press_time) {
g_LCDML_DISP_press_time = millis(); // reset debounce timer
uint16_t valuex = analogRead(_LCDML_CONTROL_analog_pinx); // analogpinx
uint16_t valuey = analogRead(_LCDML_CONTROL_analog_piny); // analogpinx
uint16_t valuee = digitalRead (_LCDML_CONTROL_digitalread); //digitalpinenter
// if (valuee == HIGH) { LCDML_BUTTON_enter(); } //HIGH with pull up resistor
if (valuey >= _LCDML_CONTROL_analog_up_min && valuey <= _LCDML_CONTROL_analog_up_max) { LCDML_BUTTON_up(); }
if (valuey >= _LCDML_CONTROL_analog_down_min && valuey <= _LCDML_CONTROL_analog_down_max) { LCDML_BUTTON_down(); }
if (valuex >= _LCDML_CONTROL_analog_left_min && valuex <= _LCDML_CONTROL_analog_left_max) { LCDML_BUTTON_quit(); } //_left
if (valuex >= _LCDML_CONTROL_analog_right_min && valuex <= _LCDML_CONTROL_analog_right_max) { LCDML_BUTTON_enter(); } //LCDML_BUTTON_right();
// if (valuex >= _LCDML_CONTROL_analog_back_min && valuex <= _LCDML_CONTROL_analog_back_max) { LCDML_BUTTON_quit(); }
}
}
// *********************************************************************
// ******************************* END *********************************
// *********************************************************************
Please, add compatibilty (examples of how to use LCDMenu) with new version of u8g library.
The new library can be found here - https://github.com/olikraus/U8g2_Arduino
Hello everybody,
Very nice job with this library.
I would like to insert date and time as a menu title... can we do that and how ?
Thx for help !
Hi, and thanks for the incredible library, it makes a breeze to make menus and configurations for this.
I have n extensive program, save data on SD read DHT22, turn on and off some reles.
I make it in two separated programs, the first was the lcd menu and configurations, using LcdMenuLib 1.0 and works like a charm.
The second, has the use of TimeAlarms for repeat each action each number of seconds, and save a lot of trouble of make soft delays on it.
The problem came ant the joint of the two mayor components, after a while of been discarding possibilities, ended up with the problem; Some sort of incompatibility between lcdMenuLib and TimeAlarms.
I open the example of intScreen, adapt to encoder, set my ic2 screen and tests it, all good so far, so.
Add a single example of Time Alarms, and the trouble began:
Rotate the lcd dont change the behavior of the lcd, some times it detects the change but is, super slow, its like the main loop has a hard delay(500), or something.
If I comment out;
void loop(){
Alarm.delay(1000); // wait one second between clock display
}
The program runs as expected, but remove this line, will ended up in none of the timeLib functions will be executed.
Will try to make a couple of videos and upload for extensive explanation.
Thanks a lot.
-Alex.
All values change, everything is done similar to the example
I will leave video with a problem I hope somebody can help :)
https://www.youtube.com/watch?v=CE-gpdlapgk
It's possible to use enconder (for menu browsing and setting) and keypad controls at once but keypad 4x4 for a security system for input passwords (0-9 keys and ABCD) and so on?
Hi,
I would like to debounce the encoder because now I have to be really carefull with the rotary. It doesn't do what I want it to do, and i think it's because it isn't debounced.
I would like to do the debouncing with software, because i've already made an PCB (maybe too early...)
What would your recommendations be to debounce a rotary encoder on the LCDML_CONTROL page.
I've worked with delays, but that didn't do much...
Kind regard!
StafWars
Wen i compile your example (not I2C LCD 'LCDML_type_lcd4bit.ino' ) i need to add <#include Wire.h> .
Why ?
Hello,
first of all thank you for your work.
What is the difference between LCDML and LCDML2?
my underlying question is to be able to set parameters directly from the menus with the right and left buttons :)
Thank you
\LCDMenuLib\examples\AVR\LCDML_DISP\LCDML_back_button\LCDML_back_button.ino
replace
#define _LCDML_DISP_cnt 12
with
#define _LCDML_DISP_cnt 15
I am using AccelStepper library and have a function in LCDML_FUNC_DISP that calls for run stepper motor but it runs very slowly and i see it it Serial Monitor updating date 1 second a second
Does void LCDML_DISP_loop updates 1 second at a time?
Hi @Jomelo
we have detected a discrepancy in the library name written inside library.properties
LCDMenuLib
and the library name written inside inside the library manager index:
LCDMenu
I think this is due to an error on our side when the library was registered in the library manager index (at the times this process was mostly manual).
Now we are about to introduce a change in the library manager that forbids the situation described above and the releases whose name differs from the name registered in the library index are ignored.
Is it ok for you to use the name LCDMenuLib
? If yes, the library will be re-published with the name LCDMenuLib
and the old LCDMenu
will be removed from the index, in this case no action is needed on your side. In absence of an answer from you we will proceed with this proposal next week.
Thanks
See also: arduino/Arduino#7127
JOB 631 - 2018/01/15 15:43:25 Checking out tag: v2.3.2
JOB 631 - 2018/01/15 15:43:25 Release LCDMenuLib:2.3.2 has wrong library name, should be LCDMenu
JOB 631 - 2018/01/15 15:43:25 Checking out tag: v2.3.3
JOB 631 - 2018/01/15 15:43:25 Release LCDMenuLib:2.3.3 has wrong library name, should be LCDMenu
JOB 631 - 2018/01/15 15:43:25 Checking out tag: v2.3.4
JOB 631 - 2018/01/15 15:43:25 Release LCDMenuLib:2.3.4 has wrong library name, should be LCDMenu
I'd like to request that support for the adafruit LiquidCrystal library be added. It is like the new Liquid Crystal Lib, but is made specifically to support a MCP23008 I2C backpack (located here https://www.adafruit.com/product/292)
Their library is available for reference here:
https://github.com/adafruit/LiquidCrystal
Do you think this will be possible?
Thanks!
Hello
I try to run the function goBack () and every time I call it I get an empty screen. Ditto for the goRoot () function.
I suspect I'm not doing something, but what? ;-)
Here is the definition of the menu of the example:
#define _LCDML_DISP_cnt 12
// LCDML_root => layer 0
// LCDML_root_X => layer 1
// LCDML_root_X_X => layer 2
// LCDML_root_X_X_X => layer 3
// LCDML_root_... => layer ...
// LCDMenuLib_add(id, group, prev_layer_element, new_element_num, lang_char_array, callback_function)
LCDML_DISP_init(_LCDML_DISP_cnt);
LCDML_DISP_add (0 , _LCDML_G1 , LCDML_root , 1 , "Information" , LCDML_FUNC_information);
LCDML_DISP_add (1 , _LCDML_G1 , LCDML_root , 2 , "Time info" , LCDML_FUNC_timer_info);
LCDML_DISP_add (2 , _LCDML_G1 , LCDML_root , 3 , "Settings" , LCDML_FUNC);
LCDML_DISP_add (3 , _LCDML_G1 , LCDML_root_3 , 1 , "Change value" , LCDML_FUNC);
LCDML_DISP_add (4 , _LCDML_G1 , LCDML_root_3 , 2 , "Something" , LCDML_FUNC);
LCDML_DISP_add (5 , _LCDML_G1 , LCDML_root , 4 , "Program" , LCDML_FUNC);
LCDML_DISP_add (6 , _LCDML_G1 , LCDML_root_4 , 1 , "Program 1" , LCDML_FUNC);
LCDML_DISP_add (7 , _LCDML_G1 , LCDML_root_4_1 , 1 , "P1 start" , LCDML_FUNC);
LCDML_DISP_add (8 , _LCDML_G1 , LCDML_root_4_1 , 2 , "Settings" , LCDML_FUNC);
LCDML_DISP_add (9 , _LCDML_G1 , LCDML_root_4_1_2 , 1 , "Retour..." , LCDML_FUNC_Retour);
LCDML_DISP_add (10 , _LCDML_G1 , LCDML_root_4_1_2 , 2 , "Long" , LCDML_FUNC);
LCDML_DISP_add (11 , _LCDML_G1 , LCDML_root_4 , 2 , "Program 2" , LCDML_FUNC_p2);
LCDML_DISP_add (12 , _LCDML_G7 , LCDML_root , 5 , "Program 2" , LCDML_FUNC_initscreen); // in g7 => hidden
LCDML_DISP_createMenu(_LCDML_DISP_cnt);
.
.
.
.
.
.
.
I create the 3 functions LCDML_FUNC_Retour
// *********************************************************************
void LCDML_DISP_setup(LCDML_FUNC_Retour)
// *********************************************************************
{
// setup function
}
void LCDML_DISP_loop(LCDML_FUNC_Retour)
{
// loop function, can be run in a loop when LCDML_DISP_triggerMenu(xx) is set
// the quit button works in every DISP function without any checks; it starts the loop_end function
if (LCDML_BUTTON_checkAny()) // check if any button is pressed (enter, up, down, left, right)
{
// LCDML_BUTTON_resetAll();
LCDML_DISP_funcend();
}
// end function for callback
}
void LCDML_DISP_loop_end(LCDML_FUNC_Retour)
{
// this functions is ever called when a DISP function is quit
// you can here reset some global vars or do nothing
//LCDML.goBack();
//LCDML_BUTTON_down();
LCDML.goRoot();
//LCDML_DISP_update();
}
If I make a click on the button or a rotation of the encoder, the display does this.
So at first it would be necessary that the "refresh" of the display is done after the function goBack () or goRoot (), or simulate an event on the rotator but how?
But as nobody reported this problem I conclude that I do not do something correctly but what? ;-(
Thank you for your help
Best regard
PS: Sorry for my poor english
Hi,
I'm using a Alps rotary encoder. Works nice but I need to rotate it two clicks for one step in the menu. Is there any setting to change that?
It would be helpful to those researching libraries and trying to decide on one if you could provide a short sentence in the README that says something like "for stability, use this, if you want new features use LCDMenuLib2" or similar.
Is it possible to run backend and display functions (in my case dinamic menu item text) ??, I need to run a backend function that run a code but this stops the display functions, is there any way to run them in parallel.
Regards
Hi, me again,
I'm fairly new to arduino, and would like to add an escape-button to the encoder-control when double-clicking the encoder. How could i implement that in the LCDML_control doc?
Habs zum laufen bekommen und möchte dir eine Rückmeldung geben. Und zwar benutzt das Beispiel die liquidCrystal_I2C library falsch - das ist alles
Bei Nutzung der aktuellen liquidCrystal_I2C library (v1.1.2) muss der Konstruktor wie folgt aufgerufen werden:
Code: [Select]
LiquidCrystal_I2C lcd(0x27,_LCDML_DISP_cols,_LCDML_DISP_rows);
In der Setup dann nicht lcd.begin(_LCDML_DISP_cols,_LCDML_DISP_rows), sondern:
Code: [Select]
// LCD Init
lcd.init();
lcd.backlight();
Vielleicht möchtest du dies bei dem nnächsten Update mit einpflegen.
Hai..i'm from Indonesia
i'm newbie.i need learn to you
i try to modif your library with keypad 4x4 and i want put condition when the relay can start looping and stop looping. i have problem about the relay, please help me.
thank you..
Hello Again!
Now I am trying to convert the liquidcrystal example you did for dynamic menu into u8glib. It's almost working. The only problem is the scroll bar. I couldn't adapt what you did for liquidcrystal (with uint8_t) into u8glib. Could you post the part of the library that we could use inside dynamic menu to make that nice looking scrooll bar? Thank you a lot!
Hi,
I get the following error message when using your LCDMenuLib library together with RF24 Library (https://github.com/TMRh20/RF24).
error: g_LCDMenuLib_lang_table causes a section type conflict
Just using your "lcdml" example code and
#include <RF24.h>
throws the error.
Can you please check this?
Thanks
Dear Nils,
I'm currently using your LCDM library and I'm very impressed with your work.
However after quite some programming effort I've run to a brick wall, where I would have to change
everything unless I find a workaroud. Maybe you can help. The issue is as follows:
I'm currently using the multiple hardware Serials of the Arduino to communicate over bluetooth
with another Arduino. Sending my data works just fine, as well as receiving, however the LCDML_FUNC
structure seems to prohibit the emptying of the receiving Serial buffer. This means that with each read
out of a String terminated by '/n' I receive the same string and am thus only able to send one string per
function call. When ending the function and restarting the buffer is emptyed.
Is there any workaround (hopefully without the implementation of backend functions) for emptying
the Serial buffer inside one LCDML-FUNC call?
Thanks in advance,
Leo
You did a great job with that library. I spent this week understanding it because the documentation is in German. Now that I figured it out, I just need to do one thing that I didn't understand the best way to do it. I need to do a menu that is not exactly dynamic as in your example. In your dynamic menu example you basically make a menu inside the last screen of you normal static menu. What I need is to use specific words in the main menu so I can acess info regarding that menu. Just for example imagine I have 6 people using my arduino to mesure their weight and save it. Each person has a name that could be added to that menu. So the menu would be the name of each person. I will save it in the EEPROM. Everyday the people will measure their weight and save it at the eeprom ( for 10 days). So at the main menu it will be the name of the people. The sub-menu of each person will be to change their name, to show their average weight in the last 10 days, and so, and I can do all that. I just don't know how to show some eeprom string (that could be even some normal string to make your example easier) at the menu. It is not a dynamic menu, otherwise I would need to make the whole menu dynamic and it is no point to do so if I can use the power of your menu ( by far the best menu library I found)!
hello how does _LCDML_priority work?
How can o give priority to a backend function?
thank you
Hello,
I try for the first time your menu lib . I have an I2C Sainsmart 40x2 LCD screen
Your v2.0 version return error !
lcdml_i2c.ino:40:16: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:49:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:50:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:51:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:52:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:53:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:54:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:55:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:56:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:57:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:58:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:59:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:60:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:61:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:62:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:63:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:64:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:65:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:66:15: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino:67:22: error: expected constructor, destructor, or type conversion before '(' token
lcdml_i2c.ino: In function 'void setup()':
lcdml_i2c.ino:72:35: error: 'LCDMenuLib_setup' was not declared in this scope
lcdml_i2c.ino: In function 'void loop()':
lcdml_i2c.ino:81:19: error: 'LCDMenuLib_loop' was not declared in this scope
LCDML_control.ino: In function 'void LCDMenuLib_control_analog()':
LCDML_control.ino:32:6: error: 'LCDML' was not declared in this scope
LCDML_control.ino:32:18: error: 'g_LCDMenuLib_press_time' was not declared in this scope
LCDML_control.ino:37:39: error: '_LCDMenuLib_button_up' was not declared in this scope
LCDML_control.ino:40:39: error: '_LCDMenuLib_button_down' was not declared in this scope
LCDML_control.ino:43:39: error: '_LCDMenuLib_button_left' was not declared in this scope
LCDML_control.ino:46:39: error: '_LCDMenuLib_button_right' was not declared in this scope
LCDML_control.ino: In function 'void LCDMenuLib_control_digital()':
LCDML_control.ino:72:9: error: 'LCDML' was not declared in this scope
LCDML_control.ino:72:21: error: 'g_LCDMenuLib_press_time' was not declared in this scope
LCDML_control.ino:75:83: error: '_LCDMenuLib_button_up' was not declared in this scope
LCDML_control.ino:76:85: error: '_LCDMenuLib_button_down' was not declared in this scope
LCDML_control.ino:78:119: error: '_LCDMenuLib_button_left' was not declared in this scope
LCDML_control.ino:79:120: error: '_LCDMenuLib_button_right' was not declared in this scope
LCDML_control.ino: In function 'void LCDMenuLib_control_serial()':
LCDML_control.ino:89:8: error: 'LCDML' was not declared in this scope
LCDML_control.ino:89:20: error: 'g_LCDMenuLib_press_time' was not declared in this scope
LCDML_control.ino:92:51: error: '_LCDMenuLib_button_up' was not declared in this scope
LCDML_control.ino:93:51: error: '_LCDMenuLib_button_down' was not declared in this scope
LCDML_control.ino:94:51: error: '_LCDMenuLib_button_left' was not declared in this scope
LCDML_control.ino:95:51: error: '_LCDMenuLib_button_right' was not declared in this scope
LCDML_function.ino: In function 'void FUNC_init_screen()':
LCDML_function.ino:9:7: error: 'LCDML' was not declared in this scope
LCDML_function.ino:11:5: error: 'lcd' was not declared in this scope
LCDML_function.ino:27:6: error: 'LCDML' was not declared in this scope
LCDML_function.ino: In function 'void FUNC_information()':
LCDML_function.ino:37:7: error: 'LCDML' was not declared in this scope
LCDML_function.ino:40:5: error: 'lcd' was not declared in this scope
LCDML_function.ino:62:6: error: 'LCDML' was not declared in this scope
LCDML_function.ino: In function 'void FUNC_timer_info()':
LCDML_function.ino:79:7: error: 'LCDML' was not declared in this scope
LCDML_function.ino:82:5: error: 'lcd' was not declared in this scope
I use the the new LiquidCrystal_V1.2.1 version
I init my LCD like that!
/* settings for lcd */
/* i2c address */
...
Thanks for your help !
Hi
I have problem with Optiboot -- https://github.com/MCUdude/MightyCore -- ATmega644P
In file included from /Users/omegapro/Documents/Arduino/libraries/libraries/LCDMenuLib2/src/LCDMenuLib2.h:142:0,
from /Users/omegapro/Google Drive/Elettronica/ASKO/Software/prova menu/LCDML_031_i2c_display_20x4/LCDML_031_i2c_display_20x4.ino:6:
/Users/omegapro/Documents/Arduino/libraries/libraries/LCDMenuLib2/src/LCDMenuLib2_macros.h:101:88: error: invalid conversion from 'void ()()' to 'LCDML_FuncPtr_pu8 {aka void ()(unsigned char)}' [-fpermissive]
LCDMenuLib2_menu parent ## _ ## child(id, param, settings, callback, condition );
^
^
/Users/omegapro/Documents/Arduino/libraries/libraries/LCDMenuLib2/src/LCDMenuLib2_macros.h:107:9: note: in expansion of macro 'LCDML_addAdvanced'
LCDML_addAdvanced(id, parent, child, NULL, content, callback, 0, _LCDML_TYPE_default)
^
/Users/omegapro/Google Drive/Elettronica/ASKO/Software/prova menu/LCDML_031_i2c_display_20x4/LCDML_031_i2c_display_20x4.ino:77:3: note: in expansion of macro 'LCDML_add'
LCDML_add (8 , LCDML_0_1 , 5 , "Imp. Caldaia" , temp_caldaia);
^
In file included from /Users/omegapro/Documents/Arduino/libraries/libraries/LCDMenuLib2/src/LCDMenuLib2.h:121:0,
from /Users/omegapro/Google Drive/Elettronica/ASKO/Software/prova menu/LCDML_031_i2c_display_20x4/LCDML_031_i2c_display_20x4.ino:6:
/Users/omegapro/Documents/Arduino/libraries/libraries/LCDMenuLib2/src/LCDMenuLib2_menu.h:73:13: error: initializing argument 4 of 'LCDMenuLib2_menu::LCDMenuLib2_menu(uint8_t, uint8_t, uint8_t, LCDML_FuncPtr_pu8, LCDML_FuncPtr_rb)' [-fpermissive]
LCDMenuLib2_menu(uint8_t p_id, uint8_t p_param, uint8_t p_configuration, LCDML_FuncPtr_pu8 p_callback_function, LCDML_FuncPtr_rb p_condition_function);
^
THANKS in advance for your help !!!!
Cristian
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.