Ya lo consegui,ahora tengo un kit de luces y cada vez que pulsas una tecla,casi sin interrumpirse,cambia la velocidad y ademas en la linea de abajo reflejo el tiempo y los estados de los interruptores.
//By LAVIDTZ
//Este es un kit de luces con el lcd mediante el simbolo completamente oscuro
//que lo hago desplazarse hasta el final y al salir del lcd vuelve a aparecer.
//Lo mas dificil del programa es sin duda la autonomia independiente de
//de la primera fila y lo que debe aparecer en la segunda.
//Para ello he jugado con 4 variables inventadas en los 4 casos de variacion
//de la velocidad.Para que no se reescriban cada vez que el simbolo se desplaza
//(ese ha sido mi mayor problema)les he asignado un valor que al
//reconocerlo escribe automaticamente y este posteriormente lo vario de valor
//para que solo ejecute la orden de kit de luces.
//Al acabar de escribir el tiempo y valores de los estados vuelvo a estabilizar
//los valores de los otros casos para que al cambiar de velocidad vuelva a
//reconocer el valor inicial y escribir solamente una vez hasta empezar de nuevo
//con el kit.
#include <16f84.h>
#use delay (clock=4000000)
#include<lcd2.c>
char c=0b11111111;
signed char x=0;
signed char a=-1;
signed char b=-1;
signed char e=-1;
signed char d=-1;
main()
{
lcd_init();
lcd_enviar(LCD_COMANDO, LCD_CURSOR_ON);
while(1)
{
if(input(PIN_A4) && (input(PIN_A3)))
{
if(a<=-1){
lcd_gotoxy(1,2) ;
lcd_putc("150ms RA3-0RA4-0") ;
a=0;
b=-1;
e=-1;
d=-1;
}
{
lcd_gotoxy(x,1) ;
lcd_putc(" ") ;
lcd_putc(c) ;
delay_ms(150);
x++;
if(x>16){
x=0;
}
}
}
if(!input(PIN_A4) && (input(PIN_A3)))
{
if(b<=-1){
lcd_gotoxy(1,2) ;
lcd_putc("300ms RA3-0RA4-1") ;
b=0;
a=-1;
e=-1;
d=-1;
}
{
lcd_gotoxy(x,1) ;
lcd_putc(" ") ;
lcd_putc(c) ;
delay_ms(300);
x++;
if(x>16){
x=0;
}
}
}
if(input(PIN_A4) && (!input(PIN_A3)))
{
if(e<=-1){
lcd_gotoxy(1,2) ;
lcd_putc("600ms RA3-1RA4-0") ;
e=0;
a=-1;
b=-1;
d=-1;
}
{
lcd_gotoxy(x,1) ;
lcd_putc(" ") ;
lcd_putc(c) ;
delay_ms(600);
x++;
if(x>16){
x=0;
}
}
}
if(!input(PIN_A4) && (!input(PIN_A3)))
{
if(d<=-1){
lcd_gotoxy(1,2) ;
lcd_putc("1.2s RA3-1RA4-1") ;
d=0;
a=-1;
e=-1;
b=-1;
}
{
lcd_gotoxy(x,1) ;
lcd_putc(" ") ;
lcd_putc(c) ;
delay_ms(1200);
x++;
if(x>16){
x=0;
}
}
}
}
}
Ha costado pero al final ha merecido la pena