Nel frattempo ho fatto qualche prova... Non sono esperto in materia ma sto cercando di risolvere gli errori uno ad uno.
Allego innanzitutto la libreria e riporto i primi errori che ottengo alla compilazione dello sketch di esempio "tft_menu.pde" contenuto nelle librerie:
In file included from calibrate.cpp:1:0:
/Users/Michele/Documents/Arduino/libraries/TFT_lib/f12x12.h:56:49: error: variable 'f12x12' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
static uint8_t __attribute__ ((progmem)) f12x12[] = {
^
In file included from /Users/Michele/Documents/Arduino/libraries/TFT_lib/f12x12.h:48:0,
from calibrate.cpp:1:
calibrate.cpp: In function 'void tp_calibrate()':
calibrate.cpp:78: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
text_box_P(80, 100, 240, 120, 5, PSTR("TP Calibration"));
^
calibrate.cpp:15: error: initializing argument 6 of 'void text_box_P(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, char*)' [-fpermissive]
void text_box_P(uint16_t x1,uint16_t y1, uint16_t x2, uint16_t y2, uint16_t radius, char* str_P);
^
In file included from /Users/Michele/Documents/Arduino/libraries/TFT_lib/f12x12.h:48:0,
from calibrate.cpp:1:
calibrate.cpp:116: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
text_box_P(80, 100, 240, 120, 5, PSTR("TP Calibrated"));
^
calibrate.cpp:15: error: initializing argument 6 of 'void text_box_P(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, char*)' [-fpermissive]
void text_box_P(uint16_t x1,uint16_t y1, uint16_t x2, uint16_t y2, uint16_t radius, char* str_P);
^
invalid conversion from 'const char*' to 'char*' [-fpermissive]
Ho iniziato dichiarando come "const" questa f12x12[] ma restituisce errore di conversione da "const char*" a char*"
In file included from /Users/Michele/Documents/Arduino/libraries/TFT_lib/f12x12.h:48:0,
from calibrate.cpp:1:
calibrate.cpp: In function 'void tp_calibrate()':
calibrate.cpp:78: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
text_box_P(80, 100, 240, 120, 5, PSTR("TP Calibration"));
^
calibrate.cpp:15: error: initializing argument 6 of 'void text_box_P(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, char*)' [-fpermissive]
void text_box_P(uint16_t x1,uint16_t y1, uint16_t x2, uint16_t y2, uint16_t radius, char* str_P);
^
In file included from /Users/Michele/Documents/Arduino/libraries/TFT_lib/f12x12.h:48:0,
from calibrate.cpp:1:
calibrate.cpp:116: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
text_box_P(80, 100, 240, 120, 5, PSTR("TP Calibrated"));
^
calibrate.cpp:15: error: initializing argument 6 of 'void text_box_P(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, char*)' [-fpermissive]
void text_box_P(uint16_t x1,uint16_t y1, uint16_t x2, uint16_t y2, uint16_t radius, char* str_P);
^
invalid conversion from 'const char*' to 'char*' [-fpermissive]
In realtà poi ho provato a risolvere eliminando l'attributo "progmem" e le PSTR in giro per il programma... era non capisco e non riesco a risolvere:
In file included from TFT_ILI9325.cpp:10:0:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/util/delay.h: In static member function 'static void LCD::init(uint8_t)':
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/util/delay.h:163:40: error: __builtin_avr_delay_cycles expects a compile time integer constant
__builtin_avr_delay_cycles(__ticks_dc);
^
Errore durante la compilazione
Da profano direi che gli manca un intero che indica il delay, ma non capisco dove!
TFT_lib.zip (44.3 KB)