Autor Tema: 16F877 con dos procesos simultáneamente.  (Leído 1993 veces)

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

Desconectado guancho2002

  • PIC16
  • ***
  • Mensajes: 113
16F877 con dos procesos simultáneamente.
« en: 18 de Marzo de 2007, 17:33:31 »
Buenas a todos,
mi duda es la siguiente: estoy realizando un proyecto con un 16F877 y un LCD en el que selecciono un tiempo que tiene una cuenta atrás, y que mientras corre ese tiempo tengo la posibilidad de variar el PWM de una señal que saco por el pin número 21. ¿Como es posible realizar un PWM variable mientras va decontando segundos del tiempo total seleccionado? Lo digo porque no solo es descontarlo sino visualizarlo en el LCD que tiene sus retardos.
Gracias y un saludo.

Desconectado PHLAKO

  • PIC10
  • *
  • Mensajes: 49
Re: 16F877 con dos procesos simultáneamente.
« Respuesta #1 en: 19 de Marzo de 2007, 16:39:49 »
justamente tengo el mismo problema y lo he solucinado de forma muy facil, solo debes copiar la sub rutina que muestra(escribe) en el LCD, dentro de las subrutinas de retardo o de programa principal.

chaos:)
SIEMPRE TE RECORDARE AMADO Y FIEL COMPAÑERO "LOBO"

Desconectado Lupin

  • PIC12
  • **
  • Mensajes: 81
Re: 16F877 con dos procesos simultáneamente.
« Respuesta #2 en: 19 de Marzo de 2007, 21:48:55 »
Hola,
Quizas sea mas conveniente que uses interrupciones, y que las demoras no sean simples loop que absorben toda la atencion del pic, sino que tus pausas sean loops que esperan el cambio de un flag controlado en la interrupcion. Por otro lado, tambien haces que la interrupcion administre los tiempos que le dedica a cada tarea.
Por ejemplo, cuando envias un caracter al LCD, en lugar de entrar a una rutina cerrada de la cual el pic no sale hasta terminar de poner el caracter en el LCD, con el uso de interrupciones logras que simultaneamente (mientras se ejecuta la rutina del LCD) se hagan cambios en el PWM, controle un teclado, etc.
El Pic siempre ejecuta una sola instruccion a la vez, pero de esta forma "ES COMO SI" realizara ambas cosas simultaneamente (de hecho puede correr varias rutinas "simultaneamente").

Saludos


 

anything