TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: kilopondio en 01 de Octubre de 2008, 17:46:17
-
Hola gente como va todo???.
Miren, necesito hacer 3 rutinas que se activan cada una por medio de un boton pero el problema es que cada rutina es un loop infinito,es decir se debe repetir continuamente pero a la vez tiene que poder ser cancelada y darme la posibilidad de mediante un evento y permitirme elegir otra de las dos si se quiere.
Me han dicho que se puede hacer con una maquina de estados pero hay que usar el timer para este fin y no tengo claro el tema.¿Alguien podria darme un ejemplo para entenderlo mejor o que tecnica se puede utilizar para resolver esto?.
Muchas gracias.
Que sigan bien!
-
Hola.
Lo puedes hacer por interrupciones en el puerto B, o incluso con una sola interrupcion (boton de cancelacion) que te conecte al menu de seleccion.
Algo mas: Que compilador usas? que micro?
Saludos
-
Como dice MLO_ podrías hacer uso de la interrupción que se genera ante un cambio en los pines RB4 a RB7 de un PIC y conectar a este puerto los pulsadores de seleccion de cada rutina. Entonces al pulsar se generaría la interrupción, en esta deberías controlar cual de los pulsadores fue el que genero la interrupción y seleccionar la rutina que se ejecutara hasta una nueva interrupcion.
De todas formas no estaría nada mal que nos cuentes que microcontrolador estas usando (si es que estas usando uno) y en que lenguaje pensas programarlo para poder ayudarte mejor. Saludos. Y si no lo has hecho todavía te recomiendo te des una vuelta por las reglas del foro. 8)
-
Para realizar una máquina de estados no es necesario utilizar ningún timer, ni interrupciones ni nada que se lo parezca. Básicamente hay que definir los estados que queremos con la directiva #define <estado> <nº del estado>, seguidamente definimos una variable donde guardaremos el estado, como pro ejemplo vEstado, se inicializa la variable con el estado inicial y se cierra en el main en un bucle infinito que: 1º compruebe los pulsadores, 2º si se ha pulsado alguno se cambia en la variable estado el nuevo estado dependiendo del botón pulsado, 3º Se comprueba el valor de la variable estado y se llama a la función asociada con el estado. Con eso estaría implementada la máquina de estados.
Un saludo
-
Aquí yo lancé una idea:
http://www.todopic.com.ar/foros/index.php?topic=16982.msg166933#msg166933