Autor Tema: CONTADOR DE PULSOS POR FLANCO  (Leído 2361 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jharod

  • PIC10
  • *
  • Mensajes: 4
CONTADOR DE PULSOS POR FLANCO
« en: 16 de Junio de 2005, 10:12:00 »
Hola,

Estoy tratando de medir la velocidad de un motor, y necesito saber como configurar los timer.

Estoy utilizando un PIC 18F448, se supone, que un encoder me genera un tren de pulsos, que entra por RC1, pero luego, no se como saber cuanto tiempo se demora cada pulso, ni cuantos pulsos hay en un tiempo determinado (por ejemplo 10ms).

En otra parte del foro dice que debo utilizar dos timers, uno para contar los pulsos y el otro para intarrumpir, pero  no entiendo como hacerlo, porque ,....la vedad nunca he utilizado un TIMER.

Desconectado modelo75

  • PIC10
  • *
  • Mensajes: 28
RE: CONTADOR DE PULSOS POR FLANCO
« Respuesta #1 en: 17 de Junio de 2005, 08:23:00 »
No se si entendi bien tu problema, pero si tienes un tren de pulsos que te entrega el encoder, puedes utilizar la interrupcion externa INT_EXT (RB0), que tome los flancos ascendentes (o descendentes) (ver el registro OPTION) y configurar el timer para medir el periodo del pulso.
Algo asi:

long tpo;
#int_ext
void cap_pulso(){
tpo=get_timer1();
set_timer1(0);
}
.....
void main()
{
setup_timer_1(T1_INTERNAL);    // Start timer 1
set_timer1(0);
enable_interrupts(INT_EXT);
while(1);
printf("tiempo del pulso
",tpo);
}
en la interrupcion, cada vez que se produzca un pulso, empieza a correr el timer hasta que llega otro pulso, y con get_timer tomo el tiempo transcurrido.
Espero que te sirva.