TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: juansi en 27 de Junio de 2009, 15:02:52

Título: borrar un solo digito en lcd
Publicado por: juansi en 27 de Junio de 2009, 15:02:52
hola amigos, os queria hacer otra preguntilla que es la siguiente:

¿como podria borrar un solo digito del lcd?

me explico, cuando tengo un mensaje en la lcd quiero borrar solo una posicion del cursor(por ejemplo la posicion "lcd_gotoxy(2,2);"), lo que me pasa es q
si uso \b el cursor pasa por encima pero no lo borra.

gracias.
Título: Re: borrar un solo digito en lcd
Publicado por: migsantiago en 27 de Junio de 2009, 15:20:51
jeje mándale un espacio en blanco

Código: [Seleccionar]
lcd_gotoxy(2,2);
printf(lcd_putc," ");
Título: Re: borrar un solo digito en lcd
Publicado por: Suky en 27 de Junio de 2009, 15:22:50
Y según la librería puedes colocar directamente lcd_putc(" ") para colocar el espacio en blanco.
Título: Re: borrar un solo digito en lcd
Publicado por: setshomaru en 27 de Junio de 2009, 15:24:55
hola  juansi podrias posicionar el cursor y mandar un espacio para borrarlo ej

lcd_gotoxy(2,2);
lcd_putc(' ');

de esta forma borras el 2do caracter de la 2da linea
Título: Re: borrar un solo digito en lcd
Publicado por: juansi en 27 de Junio de 2009, 15:39:19
amigos pirmero muchas gracias porq me funciono, pero ahora me parpadea el digito,
¿hay otro metodo q me lo solucione?

es para un programa q cuenta segundos,  para q cuando pase de 10 y llege al final vuelva a 0 y empieza de nuevo, la
parte del programa es la siguiente:

   lcd_gotoxy(1,1);
      lcd_putc("Ti.Pas.Avan.Pul."  ) ;
      lcd_gotoxy(1,2);
     
      lcd_putc("  ");
      lcd_gotoxy(1,2);
      printf(lcd_putc,"%u",lat);
        lcd_gotoxy(4,2);
      printf(lcd_putc,"%u",pas / 2);
        lcd_gotoxy(8,2);
      printf(lcd_putc,"%u",avc);
        lcd_gotoxy(13,2);
      printf(lcd_putc,"%u",pul);

gracias por vuestra ayuda
Título: Re: borrar un solo digito en lcd
Publicado por: Suky en 27 de Junio de 2009, 16:12:55
Realizalo agregando un cero cuando se represente un solo digito. En este caso no borras, solamente reescribes:

printf(lcd_putc,"%02u",lat);
Título: Re: borrar un solo digito en lcd
Publicado por: migsantiago en 27 de Junio de 2009, 16:23:29
Puedes limpiar pantalla

Código: [Seleccionar]
lcd_putc("\fTi.Pas.Avan.Pul." );
Título: Re: borrar un solo digito en lcd
Publicado por: juansi en 29 de Junio de 2009, 10:02:25
gracias amigos por las respuestas, lo de refrescar pantalla ya lo intente y me parpadeaba para este caso
asi q me quedo con la solucion de suky "printf(lcd_putc,"%02u",lat);", pero me podiais explicar como interpreta el 02u el compilador?
gracias
Título: Re: borrar un solo digito en lcd
Publicado por: Suky en 29 de Junio de 2009, 11:10:51
%02u: En este caso convierte el entero a 2 cifras, y en el caso de ser menor a 10 completa con ceros. Por ejemplo en otro caso:
Código: C
  1. lat=7;
  2. printf("%03u",lat);
Se imprime:
007
Título: Re: borrar un solo digito en lcd
Publicado por: juansi en 29 de Junio de 2009, 11:51:31
vale lo capto.


mil gracias