TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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:
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:
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?
-
Prueba declarándolas como constantes desde el principio de la función en donde están...
const char cad1[] = "bender";
...
const char cad4[] = "cuarto";
...
printf(lcd_putc, "%s", cad1);
...
printf(lcd_putc, "%s", cad4);
-
Tampoco funciona..
¿Sabeis cómo se traduce esto en códigos ASCII?
\f
\n
\b
\c
\d
-
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