Autor Tema: duda conceptual sobre como manejar el programa  (Leído 1603 veces)

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

Desconectado fastyx2

  • PIC16
  • ***
  • Mensajes: 109
duda conceptual sobre como manejar el programa
« en: 08 de Septiembre de 2007, 11:04:00 »
Amigos : estoy con una duda y es la siguiente:

          tengo diseñado un puente para un motor de continua hecho con reles. cada rele es gobernado por una pata del pic 16f628 , de manera que por soft activo los modos permitidos para el puente .

por la interrupcion externa rb0 tomo pulsos de un motor gasolero , con el proposito de regular las rpm acelerando o des-acelerando la bomba de gasoil con el motor de continua.

lo que hago es : 10 entradas a la interrupcion , con el decimo pulso hago el calculo del valor de rpm , y pongo un flag a 1 para que el main procese la comparacion
el main recibe el flag en 1 y basicamente lo que hace es :

pone el flag a cero
si rpm esta por debajo de 1450  , que las suba
si rpm esta por encima de 1550 , que la baje
si rpm esta entre 1450 y 1550   , que apague el puente

la duda es : en el momento  en que el main comienza a procesar , conviene des-habilitar la interrupcion para que procese tranquilo , o conviene que el valor de rpm este constantemente calculandose .

por un lado con la int activa tengo una actualizacion del valor de rpm, pero molesto al main cada 1 milisegundo , y por otro lado si descativo la int hasta que el main pegue la vuelta y vuelvo a activar la int , no se que consecuencia puede tener sobre la actualizacion del valor de rpm.

desde ya gracias!!


Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: duda conceptual sobre como manejar el programa
« Respuesta #1 en: 08 de Septiembre de 2007, 11:08:25 »
Hola amigo!

¿Soportaran los reles el trajin de esa aplicacion?  :shock:

Respecto de tu pregunta, aun sin conocer el motor, supongo que su inercia mecanica sera mas que suficiente para que las interrupciones que pueda tener el "main()" sean despreciables.
Y eso me lleva de nuevo a los reles. Es imposible que un rele le siga el tren a algo que eventualmente puede cambiar cada un puñado de milisegundos.....

Saludos!  :mrgreen:
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado fastyx2

  • PIC16
  • ***
  • Mensajes: 109
Re: duda conceptual sobre como manejar el programa
« Respuesta #2 en: 08 de Septiembre de 2007, 11:16:55 »
disculpen si no puse el  codigo pero esta bastante complicado por luces de aviso , grabaciones de eeprom y demas.

lo que hice en el main fue colocar un delay de 1 segundo entre maniobra y maniobra , y siempre apago el puente antes de maniobrar a la inversa.

el motor de continua esta conectado a un reductor , y la idea es que ante una carga muy alta ( es un grupo electrogeno ) modifique las rpm , pero no que siga rpm a rpm la variacion y correcion . de ahi que sea un sistema on -off y no un pid.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: duda conceptual sobre como manejar el programa
« Respuesta #3 en: 08 de Septiembre de 2007, 11:18:46 »
Ah, perfecto!  :)

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado fastyx2

  • PIC16
  • ***
  • Mensajes: 109
Re: duda conceptual sobre como manejar el programa
« Respuesta #4 en: 08 de Septiembre de 2007, 11:27:26 »
en el caso mio , el main tiene varias comparaciones para hacer en una vuelta algunos delays , y que sea interrumpido por la int rb0 me rompe las pelotas , ya que no sabes en que parte se esta ejecutando el programa!
« Última modificación: 08 de Septiembre de 2007, 11:52:19 por fastyx2 »

Desconectado fastyx2

  • PIC16
  • ***
  • Mensajes: 109
Re: duda conceptual sobre como manejar el programa
« Respuesta #5 en: 08 de Septiembre de 2007, 11:51:31 »
en el caso mio , el main tiene varias comparaciones para hacer en una vuelta algunos delays , y que sea interrumpido por la int rb0 me rompe las pelotas , ya que no sabes en que parte se esta ejecutando el programa!