Cita de la hoja de datos:
El control de función de pin alternativo 0 (APFCON0) y
Registros de control de función de pin alternativo (APFCON1)
Se utilizan para dirigir entradas y salidas periféricas específicas.
Funciona entre diferentes pines. El APFCON0 y
Los registros APFCON1 se muestran en el registro 12-1 y
Registrarse 12-2. Para esta familia de dispositivos, los siguientes
Las funciones se pueden mover entre diferentes pines.
- RX / DT / TX / CK
- SDO
- SS (Slave Select)
- T1G
- P1B / P1C / P1D / P2B
- CCP1 / P1A / CCP2
Estos bits no tienen efecto en los valores de ningún TRIS
registro. Las anulaciones de PORT y TRIS se enviarán a la
pin correcto El pin no seleccionado no se verá afectado.
Y para el registro APFCON0:
bit 7
RXDTSEL: Pin Selection
- Para dispositivos de 14 pines (PIC16F / LF1824)
-
- 0 = La función RX / DT está en RC5
-
- 1 = La función RX / DT está en RA1
- Para dispositivos de 20 pines (PIC16F / LF1828)
-
- 0 = La función RX / DT está en RB5
-
- 1 = La función RX / DT está en RC5
Por lo tanto, establecer RXDTSEL en 1 moverá el RX al mismo pin que RC5
Y al establecer TRISA en 1, se configurará la salida de todo el puerto A, excepto RA0, que se ingresará.
Establézcalo en 2, o configure TRISA1 en 1, para establecer RA1 como entrada.
EDIT:
Algunas otras cosas de la hoja de datos a tener en cuenta:
Si la función RX / DT está en un pin analógico, el bit ANSEL correspondiente debe estar desactivado para que el receptor funcione.
... así que para usar RA1 tienes que configurar ANSEL correctamente para asegurarte de que RA1 cambie a entrada digital no analógica (por defecto es analógica IIRC)