Salida USART doble por PIC12F675

Hola a todos, soy algo nuevo en esto de los pic, el caso es que estoy tratando de hacer que un dato se envió por dos puertos distintos, tanto por una pantalla como por puerto serial, el tema es que estoy ocupando Rsout_pin "pin", pero no se como colocar el otro pin, dejo código de lo que estoy haciendo para saber si me pueden explicar que estoy haciendo mal, de antemano agradezco mucho la ayuda y paciencia.



-------------
Device = 12F675
Reminders off
Config MCLRE_OFF, INTRC_OSC_NOCLKOUT
Reminders On

Xtal 4

'Pantalla virtual
Declare RsOut_Mode True

##intento de salida doble pero no funciono
Declare RsOut_Pin GPIO.5
Declare RsOut_Pin GPIO.4
Declare Serial_Baud 9600



'variables
Dim LM35 As Byte
Dim adl As Byte
Dim Aux As Float


'config general del pic
CMCON = %00000111
TRISIO = %00000000

ANSEL = %00010111
ADCON0 = %10000011


RsOut 0
DelayMS 100

Inicio:
LM35 = ADRESL
Aux = (489*LM35)/1000
RsOut "Valor: ",Dec Aux,13
DelayMS 1000
GoTo Inicio
End

1630898001815.png

dejo imagen adjunta del circuito en preoteus en caso de que sirva de ayuda.
 
Si siempre vas a enviar lo mismo conecta los dos receptores al mismo pin y ya está.
Si puedes usa la uart hardware.

Si eso es una uart software tiene bastante sentido que no puedas usar dos a la vez; son muy exigentes en recursos en líneas generales.
 
Última edición:
Si siempre vas a enviar lo mismo conecta los dos receptores al mismo pin y ya está.
Si puedes usa la uart hardware.

Si eso es una uart software tiene bastante sentido que no puedas usar dos a la vez; son muy exigentes en recursos en líneas generales.

Si, si eso lo aplica, el tema es que tenia planeado enviar las temperaturas de los otros dos sensores de temperatura por serial, para ocuparlo en python, en resumen mi idea es ocupar el sensor 1, para la terminal virtual y los otros 2 en python, por eso preguntaba si existía forma de hacerlo así :/.
 
En resumen, mi idea es ocupar el sensor 1 para la terminal virtual y los otros 2 en python, por eso preguntaba si existía forma de hacerlo así.
Existe una forma, y es usar SerOut, en lugar de RSOut.

Por ejemplo:

Código:
Device = 12F675
Config MCLRE_OFF, INTRC_OSC_NOCLKOUT, WDTE_OFF, PWRTE_ON

Xtal 4

Declare Create_Coff On

' Variables
Dim Valor_ADC As Word
Dim Temper As Float

Inicio:
    ANSEL = 0x00
    ADCON0 = 0b10000010
    SerOut GPIO.4, 84, [0x00]
    SerOut GPIO.5, 84, [0x00]
    DelayMS 100

Programa:
    ANSEL = 0b00110001
    Valor_ADC = ADIn 0
    Temper = (150.0 * Valor_ADC) / 308
    SerOut GPIO.4, 84, ["LM35 1: ", Dec2 Temper, 13]
    ANSEL = 0b00110010
    Valor_ADC = ADIn 1
    Temper = (150.0 * Valor_ADC) / 308
    SerOut GPIO.5, 84, ["LM35 2: ", Dec2 Temper, 13]
    DelayMS 1000
    GoTo Programa

    End
 
Existe una forma, y es usar SerOut, en lugar de RSOut.

Por ejemplo:

Código:
Device = 12F675
Config MCLRE_OFF, INTRC_OSC_NOCLKOUT, WDTE_OFF, PWRTE_ON

Xtal 4

Declare Create_Coff On

' Variables
Dim Valor_ADC As Word
Dim Temper As Float

Inicio:
    ANSEL = 0x00
    ADCON0 = 0b10000010
    SerOut GPIO.4, 84, [0x00]
    SerOut GPIO.5, 84, [0x00]
    DelayMS 100

Programa:
    ANSEL = 0b00110001
    Valor_ADC = ADIn 0
    Temper = (150.0 * Valor_ADC) / 308
    SerOut GPIO.4, 84, ["LM35 1: ", Dec2 Temper, 13]
    ANSEL = 0b00110010
    Valor_ADC = ADIn 1
    Temper = (150.0 * Valor_ADC) / 308
    SerOut GPIO.5, 84, ["LM35 2: ", Dec2 Temper, 13]
    DelayMS 1000
    GoTo Programa

    End
Muchas gracias, había leído en el manual de proton del serOut pero no me funcionaba, ahora entendí porque, se agradece la ayuda <3
 
Atrás
Arriba