TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: Elisabeth en 22 de Mayo de 2017, 15:06:02

Título: Temporizador TMR0 para PIC16f84a
Publicado por: Elisabeth en 22 de Mayo de 2017, 15:06:02
Hola, que tal?

Título: Re:Temporizador TMR0 para PIC16f84a
Publicado por: KILLERJC en 22 de Mayo de 2017, 16:30:04
No se cuanto tiempo tenes que tener abierta la canilla pero

En mi caso si fueran segundos, lo que haria es tener un Timer corriendo siempre, el cual cada interrupcion sea de 1 segundo ( o si es de 0.5s que sean 2 ), a lo que me estoy intentando hacer entender es que si tus tiempos son de segundos, con esto podemos saber cuantos segundos pasaron.

Haria una tabla, la cual seria algo asi:

Código: C
  1. uint8_t Tiempos[] = {90,80,70,60,50,40,30,20,10};

Si se presiono el boton, procedo a cargar el tiempo ese en una variable aparte, supongamos que esa variable se llame tiempo_actual. Tambien procedo a incrementar el indice ( variable : tiempo_indice ). Tambien estaria bueno tener una variable mas que se llame tiempo_reset la cual cargamos con 100 cada ves que detectamos un boton.

Entonces el funcionamiento seria:

- Solo leo los botones si tiempo_actual es 0.
- Aumento tiempo_indice si y solo si: Se presiono un boton Y tiempo_actual es igual a 0 (tiempo_actual igual a 0 me permite omitir los botones presionados durante la marcha)
- La salida se activa solo si tiempo_actual es distinto de 0. Sino esta desactivada.
- tiempo_reset debe volver a 100 si se presiona un boton.
- Si tiempo_reset llega a 0 debe ponerse un 0 en tiempo_indice.

Posibles problemas con esta implementacion:

- Al ser de 1 segundo cada ves que atendemos exige presionar el boton por 1 segundo como maximo. Pero tranquilamente podes reducir el tiempo de interrupcion a 0.5s de esa forma se ve mas rapido la presion del boton.

Espero que te sirva de idea. Solo necesitas en este caso la interrupcion del timer.
Título: Re:Temporizador TMR0 para PIC16f84a
Publicado por: KILLERJC en 22 de Mayo de 2017, 16:31:54
Una cosa mas...

http://www.todopic.com.ar/foros/index.php?topic=47731.0

No repitas varias veces el mismo mensaje. Sino se desvirtua
Título: Re:Temporizador TMR0 para PIC16f84a
Publicado por: Anastasia en 22 de Mayo de 2017, 18:42:20
.
Título: Re:Temporizador TMR0 para PIC16f84a
Publicado por: Elisabeth en 22 de Mayo de 2017, 19:02:34
Puedo usar la misma idea en ensamblador mplab del pic? Porque lo que hago es controlar los ciclos de instruccion para que me el tiempo exacto que quiero contar
Título: Re:Temporizador TMR0 para PIC16f84a
Publicado por: KILLERJC en 22 de Mayo de 2017, 19:15:52
Si, la idea es la misma, la podes implementar en ASM, en C, o lo que sea. Mi forma de hacerlo es usar una interrupcion unica (la del timer).

PD: Si podes conseguir un mejor integrado usalo. Ya que el PIC16F84A es obsoleto, caro a comparacion de otros con mayores prestaciones.Esto lo podes obviar si es que te exigen el PIC16F84A si o si.