Hola ,necesito un temporizador con resolucion de 1 microsegundo, se activa por A0 y se desactiva por A1, por el momento tengo esté, pero solo cuenta centenas de microsegundos, alguien que me pueda ayudar ?
Código:
#include <18f452.h>
#fuses NOWDT,HS, NOPROTECT, NOOSCSEN, NOBROWNOUT, PUT, STVREN
#use delay (clock=20000000) //Fosc=20Mhz
#include <lcd.c> //libreria lcd
double useg=0;
double th=0;
#int_TIMER0
void TIMER0_isr()
{
delay_cycles(1); // es igual a un NOP
set_timer0(33);
useg=useg+1;
}
void main()
{
port_b_pullups(TRUE); //Habilitacion Pull_up PUERTO B
lcd_init();
lcd_putc("Prueba\nmicroseg");
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2|RTCC_8_BIT);
enable_interrupts(int_timer0);
enable_interrupts(global);
WHILE (1)
{
while (input(PIN_A0)==1){}//Espera activación de primer sensor SALIDA INVERSOR
useg=0;
set_timer0(33);
enable_interrupts(INT_TIMER0);
printf(lcd_putc,"\focupado");
while (input(PIN_A1)==1){}//Espera activación de segundo sensor SALIDA INVERSOR
disable_interrupts(int_timer0);
th=useg*0.0001;
printf(lcd_putc,"\fTiempo:\n%01.4g",th);
useg=0;
}
}
Última edición por un moderador: