hace 9 años
Hola amigos, les traigo un nuevo desafió (para mi lo es, probablemente no para ustedes).
Les cuento, estoy desarrollando un programa en picc compiler, en lenguaje C en el que tengo una función que lo que hace es que hasta que no se presione la tecla ok, haya una leyenda que diga " presione -ok- " que corra por el display de derecha a izquierda.
El problema que se me presenta es el siguiente.
Al pasar la leyenda de der a izq la parte final de este texto no llega a desaparecer por completo de la pantalla. quedaría así "e -ok- ". Luego vuelve a aparecer la leyenda por la derecha y va pisando a lo que quedo en pantalla, pero esa parte final de la leyenda nunca desaparece.
Es como si el lcd 16x2 solo permitiera el movimiento de 9 caracteres hacia la izquierda, lo que supera a eso lo deja fijo en pantalla.
¿Como puedo hacer para que el texto se mueva completo? Que desaparezca por completo por la izq y aparezca por la der.
Les paso el código que yo estoy usando.
void leyenda _en _movimiento(void)
{
int s=1; //creamos el entero S que es el que me va a permitir el movimiento en pantalla
while(bit_test(porta,1)) // mientras no se presione la tecla ok correra el siguiente programa
{
lcd_gotoxy(s,1); // me ubica en la columna 1, porque "s" es 1, y en la fila 1 (parte superior del display)
printf(lcd_putc," PRESIONE -OK- "); // imprime la leyenda " PRESIONE -OK- "
delay_ms(180); // retraso de 180 milisegundos, tiempo de movimiento de la leyenda
s=s-1; // S resta 1 por cada vez que el programa pasa por aca
if(s==-15) // si S es igual a -15 (o sea que 15 caracteres pasaron hacia la izq del display o desaparecieron de la pantalla)
{
s=16; // me coloca la leyenda justo en el margen derecho del display para que vuelvan a caminar hacia la izq.
}
}
}
En el simulador PROTEUS funciona perfecto, pero en la realidad ocurre lo que les explique al principio.
Espero su auyuda.
Gracias amigos!!!
¿Realmente quieres cerrar esta reparación?
Sí
No
¿Realmente quieres reabrir esta reparación?
Sí
No
¿Realmente quieres borrar este post?
Sí
No