El problema de usar GETS() es que se queda en un bucle esperando un "\r" (ASCII 13 o Retorno de carro)¿Existe forma de utilizar "GETS();" sin la interrupción externa, o de pasar strings y utilizar la función "KBHIT();" como ya lo estaba haciendo en los primeros codes?
Según el manual de CCS también podría utilizar la función "bit_test(var, bit);" de 0:15 bits para pasar palabras (strings) ¿Cómo sería esto? ¿Tenés algún ejemplo?
Entonces si se usa dentro del bucle del programa, éste se congelará hasta que GETS() retorne.
Y obviamente esto se hará indefinidamente, por eso de preferencia se usa GETS() por servicio de interrupción.
Sobre la instrucción BIT_TEST, podría funcionar realizando varias comparaciones.
No lo he hecho comparando las letras de una cadena pero tendría que ser una por una, realizando una especie de concatenación.
Como dato adicional:
El problema al usar 1200 Bps, no tan solo se presenta con PIC C Compiler, también sucede con el Basic de Proton IDE.
Con PIC C se presenta de una manera constante cada vez que se produce la interrupción externa y entra en ejecución la instrucción GETS.
Este problema de escritura indirecta hace que el programa deje de funcionar y no se puede solucionar aún utilizando punteros.
Con Proton IDE se presenta de vez en cuando, sin embargo el programa logra seguir su ejecución.
Última edición: