#include <16F84A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#use delay(clock=4000000)
#bit Ton=0x05.4
#bit T0IF=0x0B.2
#use fast_io(A)
#use fast_io(B)
int16 Contador, X;
int32 Ciclos;
#int_RTCC
void RTCC_isr(void)
{
// Flanco ascendente.-
// Al generarse la interrupción...
// el timer0 esta en 0.
Contador=0;
T0IF=0;
while(Ton==1){
if(T0IF==1){ // Hay overflow?
++Contador; // Sumo al Contador.
T0IF=0;
}
}
Ciclos=get_timer0();
Ciclos=(int32)(Contador*0x100 + Ciclos);
X=Ciclos/1000; // (Ciclos*(4/4MHz))*1000 -> [ms]
disable_interrupts(INT_RTCC);
}
void main()
{
setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
set_timer0(255);
while(1){}
}