TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: psoto en 08 de Febrero de 2012, 11:08:08
-
Hola amigos de todopic, es la primera vez que escribo en este foro, y quisiera que me
ayuden a corregir este programa para el PIC16f84a a 4Mhz.
Lo que me piden hacer es lo sgte. hacer un retardo de 30seg. para activar y
desactivar dos relays. Las salidas deben ser controladas por un solo switch.
Al inicio el switch esta abierto y cuando lo cierro las salidas activaran los
relays despues del retardo de 30seg. Despues de que transcurrio un tiempo mayor
al retardo se abre el switch y las salidas desactivaran los relays despues del
retardo de 30seg.
El problema que tengo es que no siempre el retardo dura los 30seg. a veces solo
dura 15seg u otras veces son solo 20seg.Uso la libreria RETARDOS.INC del libro
Desarrollo de Proyectos con Microcontroladores PIC16f84A.
Aqui dejo el codigo del programa y el circuito que estoy simulando en proteus.
-
El programa, parece estar bien... creo que es error de la simulación...
-
Gracias por responder amigo. Si el programa esta bien porque no se cumple el tiempo de retardo. He puesto un contador a las
salidas y no llega a 30 seg. A veces llega a 25seg o a 15seg.
-
Hola psoto prueba usando interrupciones por TMR0 y colocando contadores... luego chekeas estos contadores con operaciones XOR y revisando el bit Z del registro STATUS para saber si estan en la cuenta que necesitas...
Una pequeña guia... si cargas el tmr0 con 0x0C4 al inicio del programa y por cada interrupcion del mismo... colocando dos contadores por ejemplo COUNT_1 y COUNT_2 al primero lo cargas con (en decimal) 100 y al segundo con 6... por cada interrupcion podes descontar COUNT_1 cuando este llegue a cero descontas COUNT_2 y volves a cargar COUNT_1 con 100 y asi hasta ke COUNT_2 llega a cero sabras que habran pasado 30 segundos EXACTOS