Hola chicos; buenos días… a ver si alguien me logra destrabar la cabeza.
Tengo este Sketch que lee un GPS NEO 6M con un ATtiny85 (no les recomiendo que lo usen porque está a medio hacer. Si logro terminarlo bien. Ahí lo pondré en la Web completo.
El tema es el siguiente:
Donde a este Sketch yo le agregue “una coma” al compilarlo me larga este mensaje de atención que “nunca lo había visto”
Si quito “la coma” por así decirlo. El mensaje desaparece. Es evidente que estoy trabajando sobre el filo de la cornisa de su memoria.
Ahora bien. Seguiré con la metáfora de la “coma”.
Cuando le agrego “la coma” no veo NADA en el Display LCD1602. Pero cuando lo compilo “sin la coma” alcanzo a ver sobre mi display.
$GPGLL y nada más.
Es en este punto; que asocio el mensaje de memory flash con no lograr ver la coordenada completa.
Entonces quisiera poner el parámetro (-D) que me indica el compilador y ver qué ocurre. Pero NO TENGO IDEA donde debo agregar el (-D) Estuve buscando en el datasheet del ATtiny85 pero nada dice al respecto.
Y creo que debo hacerlo en el Archivo de “programmers.txt” pero no tengo idea en que línea hacerlo tampoco.
Gracias de antemano por cualquier comentario que se les ocurra.
#include <SoftwareSerial.h>
SoftwareSerial miCanal(3,4);
#include <LiquidCrystal_attiny.h>
//#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2);
char renglon[9]="ZONAL XI";
char dato=' ';
String kracter,kdena;
int k;
void setup(){
// Serial.begin(9600);
miCanal.begin(9600);
lcd.init();
lcd.backlight();
pinMode(3,INPUT); // Tx Bth
pinMode(4,OUTPUT); // Rx Bth
lcd.clear();lcd.home();
// for (int i=0; i<8; i++){lcd.setCursor(i,0); lcd.print(renglon[i]);}
}
void loop(){
Nuevo:
//for (int i=0; i<6; i++){lcd.setCursor(i,1); lcd.print(" ");}
k=0;
kdena="";
Lectura:
if(miCanal.available()>0){
dato=miCanal.read();
delay(10);
kracter=String(dato);
kdena+=kracter;
lcd.setCursor(k,1);
if (k==0){if(kracter=="$"){lcd.print(String("$")); k++; goto Lectura;}else{goto Nuevo;}}
if (k==1){if(kracter=="G"){lcd.print(String("G")); k++; goto Lectura;}else{goto Nuevo;}}
if (k==2){if(kracter=="P"){lcd.print(String("P")); k++; goto Lectura;}else{goto Nuevo;}}
if (k==3){if(kracter=="G"){lcd.print(String("G")); k++; goto Lectura;}else{goto Nuevo;}}
if (k==4){if(kracter=="L"){lcd.print(String("L")); k++; goto Lectura;}else{goto Nuevo;}}
if (k==5){if(kracter=="L"){lcd.print(String("L"));
while ((dato!='\r') && (dato!=13)){
dato=miCanal.read();
kracter=String(dato);
kdena+=kracter; k++; }
if ((kdena.indexOf(",S")>-1) && (kdena.indexOf(",W")>-1)){
// lcd.clear(); lcd.home(); for (int i=0; i<8; i++){lcd.setCursor(i,0); lcd.print(renglon[i]);}
for (int i=0; i<17; i++){
char letra=kdena.charAt(i);lcd.setCursor(i,1); lcd.print(String(letra));
}
} }
}
}
}