Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola, tenia una duda, queria saber si habia alguna forma en c para que un pic estuviera esperando el envio de caracteres desde un teclado a la vez que esta encendiendo y apagando leds...ya que al esperar el envio de caracteres con getc no avanza hasta que no se le envia el caracter...si no hay ninguna forma programandolo usare otro pic que se encargue de realizar esa tarea en paralelo...pero en principio a ver si es posible hacerlo con un solo pic.
Perdon, meti el codigo fatal...
rashii, no, no la hay, lo que si podrias hacer es usar la funcion KBHIT() para comprobar si hay algun caracter a la espera en la UART, y mientras no lo haya estar encendiendo y apagando el led... la funcion quedaria algo como esto:
char MiGetc() {
long timeout;
timeout_error=FALSE;
timeout=0;
char cmd;
cmd = ""
while (cmd == "")
{
timeout=0;
output_bit (PIN_B1, 1)
while(!kbhit()&&(++timeout<50000)) // 1/2 segundo
{
delay_us(10);
}
timeout=0;
output_bit (PIN_B1, 0)
while(!kbhit()&&(++timeout<50000)) // 1/2 segundo
{
delay_us(10);
}
if(kbhit())
cmd = getc();
}
return(cmd);
}
Esto es un remix de codigo de la ayuda del CCS adaptado a lo que necesitas... Cuando te metes en la funcion MiGetc() se queda esperando a que llegue un byte por el puerto serie y mientras esta encendiendo y apagando el pin B1, que es donde esta conectado el Led de la Skypic.
No lo he probado, es probable que falle algo... siempre me pasa. Ya me diras.
Gracias Mif, es justo lo que andaba buscando,lo probare y ya te cuento, un saludo.
lo acabo de probar y va perfecto 🙂 Gracias!