Me queda claro que aún no has solucionado este error:
Cao1_Lcd20x4.cpp: In constructor 'Cao1_Lcd20x4::Cao1_Lcd20x4()':
Cao1_Lcd20x4.cpp:38:17: error: assigning to an array from an initializer list
_Font_Degre = { // lcd.createChar(1, _FontDegre);
^
Cao1_Lcd20x4.cpp:47:22: error: assigning to an array from an initializer list
_Font_TermoMeter = { // lcd.createChar(2, _Font_TermoMeter);
^
Código:
Cao1_Lcd20x4::Cao1_Lcd20x4(){
_Font_Degre = { // lcd.createChar(1, _FontDegre);
B00011100,
B00010100,
B00011100,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000};
_Font_TermoMeter = { // lcd.createChar(2, _Font_TermoMeter);
B00001110,
B00001010,
B00001010,
B00001110,
B00001110,
B00011111,
B00011111,
B00001110 };
}
El compilador no acepta estas sentencias, pero no entiendo por qué.
Si a mí me hubiera dado ese error, directamente habría evitado programar caracteres nuevos en el LCD. La única solución que se me ocurre es modificar
programa para que nunca use estos caracteres especiales.
Lo que no me ha quedado claro es si con el cambio de compilador continuas
teniendo los errores provocados por el fallo en la declaración de la variable p.
Cao1_Lcd20x4.cpp: In member function 'char* Cao1_Lcd20x4::Fmt(const __FlashStringHelper*, ...)':
Cao1_Lcd20x4.cpp:226:11: error: 'prog_char' does not name a type
const prog_char *p= (const prog_char *)fmt;
^
In file included from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from Cao1_Lcd20x4.h:14,
from Cao1_Lcd20x4.cpp:24:
Cao1_Lcd20x4.cpp:230:41: error: 'p' was not declared in this scope
unsigned char c = pgm_read_byte(p++);
No reconoce el tipo
prog_char. Se supone esto está declarado en una librería de Arduino. Concretamente en
<avr/pgmspace.h>
Se trata de la librería que permite el uso de la PROGMEM.
Yo no hago ese include en ese fichero, porque no me ha hecho falta y es raro que a ti no te lo reconozaca. parece que hay diferencias entre tus librerías y las mías.
Compruebo que sí hice el include en otros modulos:
Cao1_Parm.h:#include <avr/pgmspace.h>
Cao1_RTC.cpp:#include <avr/pgmspace.h>
No sé por donde le llega la declaración, quizás a través de <Arduino.h> el
caso es que a mí no me da error.
Puede que en tu caso necesite un #include <avr/pgmspace.h>
en Cao1_Lcd20x4.h
(24-09-2014, 10:20 AM)xavi escribió: Estoy casi seguro que si, pero no quiero ser tajante.
Esta tarde sigo haciendo pruebas.
Huy, me he colado..
Casi prefiero que solo sea eso
Gracias por la extraordinaria labor de betatester.