El tema es que una usart por software, por lo general, no se implementan con timers e interrupciones y por ende, puede ocurrir que el PC quiera enviar algo y el PIC esté atendiendo otra cosa en ese momento (el RS485 u otra cosa).
Se puede implementar la USART por soft sobre RB0 u otra interrupcion para el pin de Rx, y asi quedarian las dos USART (hard y soft) cpn interrupcion de recepcion.
Saludos
No he dicho que no se pueda, por supuesto que hay formas, pero las usart por software implementadas en los compiladores no lo suelen hacerlo así, es más ni un timer siquiera usan. Incluso una vez recibido ese evento de start, hay que saber qué hacer, y allí de nuevo a usar un timer, apagar la interrupción del pin (para que no se vuelva a activar) y un sinfin de cosas que se simplifican si no se hace uso de eso.
Además, ni bien recibes un byte, debes prestar atención estricta a la comunicación por ende dejar de lado el rs485 ya que el sucesivo envío de bytes te obliga a ello.
Por otra parte, si el pic está procesando información del rs485, que debiera hacer, cortar la comunicación con el rs485 para atender algo más urgente como la comunicación con la pc? y si no es así? deberá la pc esperar y al rato volver a intentar?
El punto es que la complejidad aumenta y el usar una señalización por hardware agiliza la operación, simplifica el software, evita lidiar con la prioridad, etc.
Dado el contexto me pareció mejor proponerle a
redep algo así, no digo que sea una regla de oro.