TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: al9 en 13 de Diciembre de 2009, 21:30:01

Título: Fallo lcd420.c CCS se come letras?
Publicado por: al9 en 13 de Diciembre de 2009, 21:30:01
Hola

Tengo un problemilla bastante tonto con el CCS y es que al usar un display de 4x20 y la libreria lcd420.c (bueno una parecida), cuando intento hacer:

Código: [Seleccionar]
  printf(lcd_putc, "bender");
   printf(lcd_putc, "charly ");
   printf(lcd_putc, "domino ");
   printf(lcd_putc, "cuarto ");

Aparece en pantalla: ender harly omino uarto  :shock:
Si lo pongo en mayuscula no hay problema...

Creo que en esta parte de código los códigos de escape se confunden:

Código: [Seleccionar]
void lcd_putc( char c ) {
switch(c) {
case '\f' : lcd_send_byte(0,LCD_CLR_DISP);
lcd_line=1;
delay_ms(2); break;
case '\n' : lcd_gotoxy(1,++lcd_line); break;
case '\b' : lcd_send_byte(0,LCD_MOVE_CURSOR_LEFT); break;
case '\c' : lcd_send_byte(0,LCD_DISP_ON_CURSOR); break;
case '\d' : lcd_send_byte(0,LCD_DISP_ON_BLINK); break;
case '\1' : lcd_send_byte(1,LCD_DEGREE_CHAR); break;
default : lcd_send_byte(1,c); break;
}
}



Alguna idea?
Título: Re: Fallo lcd420.c CCS se come letras?
Publicado por: migsantiago en 14 de Diciembre de 2009, 15:09:11
Prueba declarándolas como constantes desde el principio de la función en donde están...

Código: [Seleccionar]
const char cad1[] = "bender";
...
const char cad4[] = "cuarto";

...

   printf(lcd_putc, "%s", cad1);
   ...
   printf(lcd_putc, "%s", cad4);
Título: Re: Fallo lcd420.c CCS se come letras?
Publicado por: al9 en 10 de Enero de 2010, 14:23:36
Tampoco funciona..

¿Sabeis cómo se traduce esto en códigos ASCII?

\f
\n
\b
\c
\d

Título: Re: Fallo lcd420.c CCS se come letras?
Publicado por: maxluis en 11 de Enero de 2010, 00:12:56
Estimado: Alguna vez me paso algo similar...y estaba relacionado con los caracteres que usa la libreria en algunos comandos...si mal no recuerdo..yo reemplace alguna funcion como " saltar a la linea 4 " por " /k" y cada vez que queria usar el la "k" para sacarla por lcd...se la "comia" revisa por ahi.
saludos.
Maxluis