Autor Tema: Como usar un menú y controlar temperatura al mismo tiempo?  (Leído 2015 veces)

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

Desconectado jesalf

  • PIC10
  • *
  • Mensajes: 14
Como usar un menú y controlar temperatura al mismo tiempo?
« en: 11 de Febrero de 2008, 21:29:35 »
Hola a todos, soy relativamente nuevo he leido y aprendido mucho de ustedes y generalmente resuelvo mis dudas con los temas ya tratados... pero llegue el punto de no poder resolver esto:

Estoy haciendo un control de humedad y temperatura, en éste estoy implementado un menu de opciones de la siguiente manera

1. Cambiar el "set point" de humedad y temperatura,
2. Ajustar los sensores desde el programa,
3. Guardar o no guardar datos
    3.1 Intervalo de tiempo
    3.2 Iniciar o detener

Estoy usando un PIC16F877 y programo con el CCS versión 3.34
lo que yo hago es detectar una interrupción externa (puerto B) provocada por el teclado de 4x4 para habilitar la función el menú. El problema que tengo es

1 ¿como manejar el menú sin dejar de controlar la humedad y temperatura?
2 ¿el manejo de interruppción es lo más adecuado?
3 He leido que no es bueno hacer funciones muy extensas dentro de una interrupción ¿porque no? supongo que es por lo mismo que planteo la pregunta, si mi función dentro de interrupción es muy larga pues dejo de controlar todo el tiempo que esté en el menú ¿o hay otra razón?

Espero que haya posteado en el lugar adecuado.

Saludos a todos.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Como usar un menú y controlar temperatura al mismo tiempo?
« Respuesta #1 en: 11 de Febrero de 2008, 21:39:39 »
No es necesario que dejes de controlar por dedicarte al menu.
No lo lei pero supongo que despliegas el menu sobre un display LCD, por lo tanto puedes aprovecharte que el ultimo dato escrito alli quedara hasta que envies otro... :mrgreen:

Esta bien que uses la interrupcion del teclado.
Yo utilizo una interrupcion del timer para marcar un ritmo de tiempo.
dentro del main() cotejo cuando se supera una cantidad determinada de ticks y cuando eso pasa ejecuto determinadas funciones, entre ella el control de los reles.
Si cambias cada 50 milisegundos un rele, te aseguro que el proceso que controles no sufrira ningun cambio significativo, mientras que dentro del programa en 50 milisegundos ejecutas varios miles de instrucciones de lenguaje C, asi que no le tengas miedo... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: Como usar un menú y controlar temperatura al mismo tiempo?
« Respuesta #2 en: 11 de Febrero de 2008, 22:15:25 »
Lo que me parece que se hace es que la interrupción de teclado simplemente obtiene la tecla presionada y listo tu sistema "deja de controlar" un tiempo realmente despreciable, sobretodo en la mayoría de los procesos como son la temperatura. Creo que No cambia mucho la temperatira en 1 ms.
En cuanto al refresco de la pantalla pasa lo mismo, me parece que lo mejor es poner la rutina de refresco de pantalla en el main despues de realizar la actualización de actuadores. Y si el proceso de control fuese realmente crítico, bueno poner una interrupción por timer para que ejecute el control en intérvalos regulares de tiempo...
     

Desconectado jesalf

  • PIC10
  • *
  • Mensajes: 14
Re: Como usar un menú y controlar temperatura al mismo tiempo?
« Respuesta #3 en: 12 de Febrero de 2008, 01:47:14 »
aaahhh ok, creo que ya entendí, ahora la lógica que debo manejar es que cuando presiono una tecla y regrese a la función de control "guarde" un valor en alguna variable que me indique a que parte del menú debo de regresar cuando vuelvo a presionar otra tecla y así hasta terminar la operación del menú ¿verdad?. (espero que me de a entender jeje)

Los datos los voy a mostrar por un LCD de 20X4 con comuniación serial.

Cuando tenga algo más concreto postearé en la sección de proyectos mi avance.

Muchas gracias por las ideas y comentarios.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Como usar un menú y controlar temperatura al mismo tiempo?
« Respuesta #4 en: 12 de Febrero de 2008, 13:56:42 »
Exacto.
Y tu programa es un simple loop que mira que tiene que hacer en funcion del avance del menu, entre ello visualizar diferentes mensajes, informacion numerica, etcetera.
El manejo de la parte a controlar lo haces si quieres en todos los ciclos del loop o sino cada XX cantidad de tiempo transcurrido. :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Como usar un menú y controlar temperatura al mismo tiempo?
« Respuesta #5 en: 12 de Febrero de 2008, 14:48:43 »
Una problema que con el RTOS quedará resuelto en poco tiempo y con poco esfuerzo.


 

anything