Solo quería saber si el “use_232” mapeado en el mismo pin pudiera trabajar bien como un SPI o I2C sin interrupciones ni perdida de datos.
Las usart por software tienen sus limitaciones cuando se las usa con otras interrupciones habilitadas y si las mismas no están controladas por un timer.
Me explico mejor.
Cuando en una usart por software detectas el 'start' , debes comenzar a recibir el byte completo si o si. Ese start nunca se sabe cuando vendrá porque precisamente es una comunicación asíncrona, un byte puede venir 2 segundos después que el otro y nadie nos avisará de eso.
Una vez detectado el start (que puede ser por un monitoreo contínuo del puerto o bien por un timer activado cada n useg que lea el pin) los siguientes bits deben ser leídos a un tiempo exacto (o casi exacto) entre bits para que el byte sea interpretado correctamente.
Si durante esta lectura de los bits a tiempos exactos, se habilita una interrupción en otro periférico es muy probable que te pierdas "un bit" o bien que lo malinterpretes y te quede la recepción corrida algunos useg.
En una usart por hardware esto daría un error de framing, en una usart por software no habrá error alguno. Es el protocolo que uno usa (empleando cheksums, crc, o lo que a uno le de la gana) el que debe lidiar con estos posibles errores de recepción.
Si tu usart por software, deshabilitará todas las interrupciones durante la detección de los bits del byte entrante, entonces es muy probable que lo recibas bien.
Espero se haya entendido.
Saludos
PD: es cierto que algunos posts no suman al debate pero también debes entender (y te sugiero que así lo hagas) que agrediendo a quien te quiere ayudar no logras nada y hasta te pondrás gente en contra.
Cuando alguien es nuevo en un foro (como lo eres tú en este), nadie te conoce ni puede evaluar si sabes o no sabes del tema y por eso a veces te pueden plantear algún concepto que para tí sea muy obvio.. pero creeme que para muchos que ingresan no lo son y eso es lo que quiso hacer Picmouse.
De la misma forma yo me podría burlar de tí porque no comprendas las limitaciones de una usart por software, sin embargo no lo he hecho. ¿se entiende la idea?
Saludos