Estoy programando un PIC16F877A, pero el dispositivo me pide que cuando un ventilador se enciende, se le envía al puerto RA4/T0CKI una señal de 5V para saber que el ventilador está prendido y 0V cuando está apagado.
La pregunta es: ¿Cómo puedo leer este valor y con ello mandar una alarma a otro canal?
El pin T0CKI o Timer 0 Clock Input es la entrada externa para el Timer 0, este timer desborda cuando se cuentan 255 pulsos, ya sea interna o externamente.
Así que configurándolo para detectar pulsos, tendrás que enviar 255 y entonces sí ocurrirá la interrupción por desborde.
Y eso en el caso que el prescaler esté configurado sin división, o sea: T0_DIV_1
También se puede configurar para detectar pulsos de flanco negativo o positivo en la entrada externa del pin RA4 (T0CKI)
Ahora, nada impide que lo leas como cualquier pin digital, ya que este pin no tiene ADC pero es con drenador abierto, lo cual implica usar resistencias pull-up o pull-down cuando se usan pulsadores.
Si la señal viene de una fuente digital o con estados lógicos definidos, entonces no tiene caso usar pull-up/down.
Si quieres prioridad de detección de un estado lógico, entonces usa la interrupción externa por RB0
Nota: Un puerto son todos los pines del grupo, RA4 es un pin.