Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Cryn en 17 de Julio de 2008, 19:09:57
Título: printf para lcd, caracteres extra y cgram
Publicado por: Cryn en 17 de Julio de 2008, 19:09:57
saludos amigos, aca con una nueva pregunta sobre lcd's y el printf, no encontre algo referente a mi duda y por eso abri el nuevo tema.
pasa lo siguiente, estoy usando un HD44780 y como es muy bien sabido se puede utilizar hasta 8 caracteres definidos por uno mismo utilizando la cgram, y pues como bien explicado esta en otros hilos no tuve mucho problema en hacerlo funcionar, además que el programa del buen Pali sirve mucho para ello, grande Pali!
ahora paso más al detalle de mi duda con el printf
para por ejemplo ver una ñ en el lcd, o bien la creamos o bien rebuscamos en sus caracteres y encontré que el "codigo ascii" para la ñ dentro el controlador del lcd es 0xee
y por ejemplo si quiero escribir año puede hacerlo de esta manera:
printf(lcd_putc,"A o\b\b"); lcd_putc(0xee);
y con lo que tengo escrito en la pantalla del lcd: Año solo existe la ñ minuscula, y de la misma forma con el símbolo de grados, que tb se utiliza para nombrar a los números ordinales: º su codigo ascii en el lcd es 0xdf si hago por ejemplo:
printf(lcd_putc,"Fue 1"); lcd_putc(0xdf);
y con eso obtengo en mi LCD escrito: Fue 1º
sin crear nada, ahora pasaría lo mismo con la cgram, si coloco 0-7 en el lcd_putc tengo visualizado en el lcd la posicion de la cgram
Ahora la pregunta del millon, hay alguna forma de incluir dentro del printf esos caracteres especiales? para no tener que adjuntar las instrucciones lcd_putc() independientes que hasta ahora he colocado?
algo que sea... nose, como esto:
printf(lcd_putc,"A%eo",0xee);
y me de como resultado la palabra: Año, visto en el lcd. Nose si me deje entender? espero que si, por si las moscas lo de %e vendría de Especial :D, no existe, al menos hasta ahora para mi.
Título: Re: printf para lcd, caracteres extra y cgram
Publicado por: jfh900 en 17 de Julio de 2008, 19:39:32
Muy sencillo:
printf("A%cn",oxee); Obtenemos "Año"
%c permite poner un carácter.
Un saludo
Título: Re: printf para lcd, caracteres extra y cgram
Publicado por: MLO__ en 17 de Julio de 2008, 23:13:37
Hola.
Lo que yo hago es, antes de definir los caracteres, asignar un nombre a la direccion del caracter correspondiente. Por ejemplo: