Hola a Todos!
Estoy metido en un gran problema que no se resolver. Por eso acudo a ustedes.
Poseo un teclado matricial de 8x9. Es decir que voy ingrasando un uno en forma rotativa mediante un registro de desplazamiento de 8 bits y observo por las 9 salidas de la matriz si estan activas o no (en el programa, estas son entradas y las he llamado T0-T8).
De esta matriz debo interrogar (en lo posible con menos de 5 ms de demora) los pines de T0-T5 y enviar un comando a la PC de 3 bytes a 9600 (lo cual demora 2,5 ms aproximadamente). Los pines T6 a T8 deben ser interrogados como minimo a 30 ms y se debe envia un comando a la PC de 2 bytes (lo cual demora 1,7 ms)
He medido el rebote de las teclas rapidas y es menor a los 2 ms.
El Hardware funciona correctamente pero el software tiene una alta demora en enviar los datos debido a que la funcion putc() hace un pulling y no deja que mi codigo avance.
Que alternativa de programacion me sugieren para poder cumplir con las especificaciones? Aclaro que es un 16f877 y lo estoy programando en CCS
He probado de escanear las teclas con un timer y en el main enviar los datos pero la gran demora del putc () no deja que funcione correctamente. Tambien hice la prueba inversa.
Gracias por sus propuestas y Feliz Año!
Aclaracion: En la seccion de programacion en CCS consulte solo una parte de lo enunciado aqui ( lo refernte al problema del putc). Si hice mal o se considera doble post agradeceria el avisarme asi lo quito.