Hola a todos , estoy intentando programar con CCS el pic16f873 para utilizarlo como frecuenciometro , para ello estoy utilizado el timer1 como contador , aplicando los pulsos por el pin C0.
He escrito un par de lineas de codigo , y lo unico que he consegido es registrar frecuencias mayores a 2 Hz y pares , no se si es un problema del codigo , o del programa de simulación que estoy utilizando (proteus 6.3).
Aqui os dejo el codigo haber si pe podeis echar una mano ,
. Un saludo a todos.
void frecuencia (void){
set_timer1(0); //reseteo timer 1
setup_timer_1(T1_EXTERNAL_SYNC|T1_DIV_BY_1); //activo timer1 como contador
delay_ms(5000); //cuento durante 0.5s
setup_timer_1(T1_DISABLED);//desabilito timer 1
cuenta=get_TIMER1(); //recogo la cuenta de pulsos.
set_timer1(0);
lcd_init();
printf(lcd_putc,"pulsos min %f ",6*cuenta);
}
OBS: Queo que lo de utilizar un delay_mas(5000), no es muy optimo, ¿sería mejor utilizar el
timer0, para quear el retardo o los delay_cycles?
He escrito un par de lineas de codigo , y lo unico que he consegido es registrar frecuencias mayores a 2 Hz y pares , no se si es un problema del codigo , o del programa de simulación que estoy utilizando (proteus 6.3).
Aqui os dejo el codigo haber si pe podeis echar una mano ,
void frecuencia (void){
set_timer1(0); //reseteo timer 1
setup_timer_1(T1_EXTERNAL_SYNC|T1_DIV_BY_1); //activo timer1 como contador
delay_ms(5000); //cuento durante 0.5s
setup_timer_1(T1_DISABLED);//desabilito timer 1
cuenta=get_TIMER1(); //recogo la cuenta de pulsos.
set_timer1(0);
lcd_init();
printf(lcd_putc,"pulsos min %f ",6*cuenta);
}
OBS: Queo que lo de utilizar un delay_mas(5000), no es muy optimo, ¿sería mejor utilizar el
timer0, para quear el retardo o los delay_cycles?