TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fastyx2 en 08 de Septiembre de 2007, 11:04:00

Título: duda conceptual sobre como manejar el programa
Publicado por: fastyx2 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!!

Título: Re: duda conceptual sobre como manejar el programa
Publicado por: aitopes 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:
Título: Re: duda conceptual sobre como manejar el programa
Publicado por: fastyx2 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.
Título: Re: duda conceptual sobre como manejar el programa
Publicado por: aitopes en 08 de Septiembre de 2007, 11:18:46
Ah, perfecto!  :)

Título: Re: duda conceptual sobre como manejar el programa
Publicado por: fastyx2 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!
Título: Re: duda conceptual sobre como manejar el programa
Publicado por: fastyx2 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!