Arduino Uno R4 Minima & LCDMenuLib2

Hallo mal wieder :slight_smile:

Ich habe gerade ein kleines Projekt, wofür ich eine kleine zusätzliche Box mit MCP23017 & einem LCD (jeweils über I2C verbunden) gebaut habe.
Diese Box soll dann an einen Arduino Uno R4 Minima angeschlossen werden - zur Zeit programmiere ich alles aber auf einem Arduino Uno R3 auf dem Schreibtisch für mein Try&Error-Game.

Ich meine die Library LCDMenuLib2 ausreichend verstanden zu haben, und mache hier soweit auch Fortschritte und alles gut.
Jedoch hat sich beim Sketch hin & her tabben dann irgendwie mal das Board in der Arduino IDE vom 'Arduino Uno' auf den zukünftig angedachten 'Arduino Uno R4 Minima' geändert.

Und nun hatte ich so einige Errors/Warnungen beim Compilen in der IDE und mache mir nun Gedanken ob ich diese Library überhaupt für den R4 verwenden kann.
Für den R4 wollte er die Sonderzeichen in anderer Schreibweise, weil 'deprecated' - habe ich geändert und die Warnungen sind weg..
Jedoch habe ich nun noch folgende Error-/Warn-Meldungen:

In file included from C:\Users\rnddude\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/api/String.h:33:0,
                 from C:\Users\rnddude\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/api/IPAddress.h:24,
                 from C:\Users\rnddude\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/api/ArduinoAPI.h:30,
                 from C:\Users\rnddude\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/Arduino.h:4,
                 from C:\Users\rnddude\AppData\Local\Temp\arduino\sketches\0B9BFF3D01F24502866AC419626E2EAD\sketch\UNO_R4_LCDML_001_liquidCrystal.ino.cpp:1:
C:\Users\rnddude\Documents\Arduino\UNO_R4_LCDML_001_liquidCrystal\LCDML_display_menu.ino: In function 'void lcdml_menu_display()':
C:\Users\rnddude\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/api/deprecated-avr-comp/avr/pgmspace.h:105:61: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 #define pgm_read_word(addr) (*(const unsigned short *)(addr))
                                                             ^
C:\Users\rnddude\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/api/deprecated-avr-comp/avr/pgmspace.h:65:45: note: in definition of macro 'strcpy_P'
 #define strcpy_P(dest, src) strcpy((dest), (src))
                                             ^~~
c:\Users\rnddude\Documents\Arduino\libraries\LCDMenuLib2\src/LCDMenuLib2_macros.h:100:38: note: in expansion of macro 'pgm_read_word'
                 strcpy_P(var, (char*)pgm_read_word(&(g_LCDML_DISP_lang_ ## lang ## _table[id]))); \
                                      ^~~~~~~~~~~~~
c:\Users\rnddude\Documents\Arduino\libraries\LCDMenuLib2\src/LCDMenuLib2_macros.h:138:9: note: in expansion of macro 'LCDML_getCustomContent'
         LCDML_getCustomContent(lcdml, var, id)
         ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\rnddude\Documents\Arduino\UNO_R4_LCDML_001_liquidCrystal\LCDML_display_menu.ino:50:9: note: in expansion of macro 'LCDML_getContent'
         LCDML_getContent(content_text, LCDML.MENU_getParentID());
         ^~~~~~~~~~~~~~~~
C:\Users\rnddude\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/api/deprecated-avr-comp/avr/pgmspace.h:105:61: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 #define pgm_read_word(addr) (*(const unsigned short *)(addr))
                                                             ^
C:\Users\rnddude\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/api/deprecated-avr-comp/avr/pgmspace.h:65:45: note: in definition of macro 'strcpy_P'
 #define strcpy_P(dest, src) strcpy((dest), (src))
                                             ^~~
c:\Users\rnddude\Documents\Arduino\libraries\LCDMenuLib2\src/LCDMenuLib2_macros.h:100:38: note: in expansion of macro 'pgm_read_word'
                 strcpy_P(var, (char*)pgm_read_word(&(g_LCDML_DISP_lang_ ## lang ## _table[id]))); \
                                      ^~~~~~~~~~~~~
c:\Users\rnddude\Documents\Arduino\libraries\LCDMenuLib2\src/LCDMenuLib2_macros.h:138:9: note: in expansion of macro 'LCDML_getCustomContent'
         LCDML_getCustomContent(lcdml, var, id)
         ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\rnddude\Documents\Arduino\UNO_R4_LCDML_001_liquidCrystal\LCDML_display_menu.ino:69:13: note: in expansion of macro 'LCDML_getContent'
             LCDML_getContent(content_text, tmp->getID());
             ^~~~~~~~~~~~~~~~
Der Sketch verwendet 62344 Bytes (23%) des Programmspeicherplatzes. Das Maximum sind 262144 Bytes.
Globale Variablen verwenden 5288 Bytes (16%) des dynamischen Speichers, 27480 Bytes für lokale Variablen verbleiben. Das Maximum sind 32768 Bytes.

Für die Meldung 'cast to pointer from integer to different size' bin ich aber noch nicht ausreichend in der Materie, um zu verstehen, wo was ein Problem ist und/oder werden könnte..
Soweit ich es erlesen kann, benutzt die IDE wohl auf jeden Fall 'pgmspace.h' aus 'deprecated-avr'; was logischerweise nicht der Architektur 'renesas_uno' entspricht - aber ob das nun ein Problem ist - I simply don't know.

Der Fehler lässt sich mit den Beispielen aus der Library jederezeit reproduzieren, kann jedoch gerne auch hier Codeschnipsel reinposten.

Ich danke schonmal für erste Ratschläge/Hinweise/o.ä.

Grüße,
rnddude

Moin,
kannst im Beispiel Code in der folgenden Zeile das Kommentar entfernen und die Zeile aktivieren.

//#define _LCDML_cfg_use_ram

Ich hab die lib mit dem R4 noch nicht getestet.
Viele Grüße
Jomelo

Warum entwickelst Du auf einer Plattform (Arduino-Model) und willst dann ein andere Plattform im Projekt verwenden?

Grüße Uwe

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.