RA4/T0CKI del pic16f877a utilizarla como entrada digital

#1
Hola buenas noches grupo, estoy programando un pic16f877a, pero el dispositivo me pide que cuando un ventilador se enciende, se le envia al puerto RA4/T0CKI una señal de 5v para saber que el ventilador esta prendido y 0v cuando esta apagado, la pregunta es, como puedo leer este valor y con ello mandar una alarma a otro canal, no he podido hacerlo, lo intento hacer cuando presiono un botón, pero aún sin resultados, lo estoy programando en ccs compiler, les agradeceré mucho su ayuda. Saludos.
 
#3
#int_TIMER0 //la siguiente función tiene que ser la de interrupción del TMR0
void TIMER0_isr(void){
//Aqui pretendo leer la interrupción por el cambio de voltage de 0v a 5v
}
void main()
{
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(pin_A3);

setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_256);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
set_TIMER0(0);

// TODO: USER CODE!!
while(true){
}
}
 
#6
No , es que se ve claramente que no tienes idea de que estas haciendo.
Si sabes programar en C estás prácticamente del otro lado.
El micro que uses el que sea y el compilador C que uses puede ser ccs codewarrior avrstudio mikroC etc.

Tiene sus maneras de declarar timers interrupciones o acceder a hardware especial.

En este caso estás declarando deshabilitar timers interrupciones y luego las habilitas todas y luego globales , después dejas el timer 0 vacío.

Esas cosas se hacen con la hoja de datos en mano.
Tienes la ventaja de que CCS tiene una ayuda llamada Index que pone muchos ejemplos.

Lee cada cosa, Lee la hoja de datos del PIC, estudia lenguaje C, el C de PC es el recomendable.
¿Esta en ingles?
Esfuerzate más no hay peladito y en la boca eso es para flojos.
 

pandacba

Rocker Bear
#7
Si deseas que de verdad te ayuden danos la mayor información, no pedazos, incluso esquemas eléctricos, cuanto más aportes mejores resultados obtendrás

Eso que pusiste de código no sirve ni para empezar, donde esta como has definido los puertos y sus pines, cuales de entrada, cuales de salida??
Sin eso no podes ni empezar, donde has definido las variables que vas a utilizar??????
Te enojas pero es así.
Porque motivo tiene que ser ese pin y no otro?
 
#8
Es como ya lo dije sabes por qué se llama T0CKI?
La hoja de datos lo dice
Es un pin de entrada salida de colector abierto y etc.
Es muy diferente a los pines normales deberías saberlo si leíste la hoja de datos.
Si no lo haz hecho pues que lastima.
 
#9
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.
 
#10
Disculpen, en el caso de usar una resistencia Pull-Down en un PIC al accionar el Switch le llegan 5V al pin del PIC pero hasta ahí no hay ni una carga ¿Hay una resistencia interna (Carga) en los puertos de entrada A de los tipicos pics 16fXX que evita un simple camino a masa( Corto)?
En modo Pull-Up si pasa por R1


Microcontrolador.png pull up.png
 
Última edición:
#11
Depende, algunos llevan pullup interna, otros llevan pullup y pulldown.
Lee el datasheet que te dirá que lleva y que no lleva y como se activa.
No todos los derivados son idénticos y no todos los pines son idénticos.
En ningún caso hará un corto actuando como entrada, eso seguro.
 
Última edición:

Arriba