Código CCS
#include <main.h>
#include <LCD.C>
int32 lectura, tiempo,frecuencia;
#INT_TIMER0
void TIMER0_isr(void)
{
output_toggle(pin_c0);
set_timer0(lectura);
}
void main()
{
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL|ADC_TAD_MUL_0);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256|RTCC_8_BIT); //32,7 ms overflow
lcd_init();
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
while(TRUE)
{
lectura = read_adc();
tiempo = ((4 * 256 * (256 - lectura))/8) * 2;
frecuencia = 1E6/tiempo;
lcd_gotoxy(1,1);
printf(lcd_putc,"F = %Lu Hz ",frecuencia);
}
}
Diagrama electrónico proteus 8
#include <main.h>
#include <LCD.C>
int32 lectura, tiempo,frecuencia;
#INT_TIMER0
void TIMER0_isr(void)
{
output_toggle(pin_c0);
set_timer0(lectura);
}
void main()
{
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL|ADC_TAD_MUL_0);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256|RTCC_8_BIT); //32,7 ms overflow
lcd_init();
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
while(TRUE)
{
lectura = read_adc();
tiempo = ((4 * 256 * (256 - lectura))/8) * 2;
frecuencia = 1E6/tiempo;
lcd_gotoxy(1,1);
printf(lcd_putc,"F = %Lu Hz ",frecuencia);
}
}
Diagrama electrónico proteus 8