Hola a todos, he estado buscando posts que tratasen este tema pero no he sabido encontrar.
Bueno, la cuestion es que necesito medir un tiempo por interrupción para que sea siempre igual, en teoria con el timer0 sin prescaler y a 4MHz tendría que interrumpir cada 1useg pero no sucede así, si no que consume 60useg alguien me puede explicar por q? supongo que es por el codigo C almenos espero que sea un valor fijo y q no varie segun lo que haga en el main.
#include <12F675.h>
#device adc=8
#use delay(clock=4000000,RESTART_WDT)
#fuses NOWDT,INTRC_IO, CPD, PROTECT, MCLR, NOPUT, NOBROWNOUT
#use rs232(baud=9600,parity=N,xmit=PIN_A2,bits=8)
#include <string.h>
#ZERO_RAM
//******************************************************+
// Variables globals
//******************************************************+
int pulsosrtc,pulsos1;
float X,Y;
char flag1; //flags
#int_RTCC
RTCC_isr()
{ pulsosrtc++1;
set_rtcc(0xFF);
}
#int_EXT
EXT_isr()
{
}
#int_TIMER1
TIMER1_isr()
{
}
void main()
{
setup_adc_ports(0);
setup_adc(ADC_OFF);
setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
disable_interrupts(INT_RTCC);
disable_interrupts(INT_EXT);
disable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
pulsosrtc=0;
set_rtcc(0xFF);
enable_interrupts(INT_RTCC);
while (TRUE) {
// printf("Hola"
;
//delay_ms(300);
}
}