Autor Tema: Problema transferencia variable entre main y interrupciones  (Leído 1705 veces)

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

Desconectado hqv

  • PIC12
  • **
  • Mensajes: 70
Problema transferencia variable entre main y interrupciones
« en: 07 de Julio de 2005, 22:00:00 »
Hola amigos del foro:

Mi consulta es la siguiente:
tengo problemas al trasferir un valor entre main y la función relacionada con la interrupción RB0.

LAs trato de transferir por variable y no me resulta.....y por dirección tampoco..

debe ser que tenga algun problema con los * o & y donde van ubicados...

parte del programa es el siguiente:

main()
{

int x=1;
unsigned long int z; //recepcion

printf("Dentro de main x =%d
", x);//// Aqui indica x=1.

while(1)
  {
 


   }

}


#int_ext
int encendido(int x)
{
int tx=0;
*x=1;


printf("pase por aqui
"Giño;
printf("valor x= %d valor *x = %d
", x, *x );// aqui indica x=0 y *x=0.
switch(*x)
   {
   printf("hola héctor
"Giño;
   case(1)://ENCENDIDO
      {

      output_high(PIN_A5);//
   
      output_low(PIN_A0);
      *x=0;   
      ext_int_edge(H_to_L);//   interrupcion ALTO a BAJO
      output_high(PIN_D2);
      enable_interrupts(INT_RDA);
      tx=0;
      return(tx);
      break;
      }
   case(0)://APAGADO
      {
      output_low(PIN_D2);

      output_low(PIN_A5);
      output_High(PIN_A0);
      *x=1;
      ext_int_edge(L_to_H);//interrupcion BAJO a ALTO
      disable_interrupts(INT_RDA);
      tx=1;   
      return(tx);
      break;
      }


   }//Fin switch
}//Fin interrupción ext encendido


Imprimo en la pantalla los valores de x dentro de main y resulta x=1, activo la interrupción RB0  , entro en la interrupción y imprimo x y *x y el resultado es x=0 y
*x=0,  debiendo ser x=1 y *x =1, ya que dentro de la interrupcion RB0 asigno a *x el valo de 1.

se que tengo algo malo...
me podrían edxplicar para tenerlo claro eso de las transferencia de variables....

muchas gracias
hq



Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Problema transferencia variable entre main y interrupciones
« Respuesta #1 en: 08 de Julio de 2005, 02:31:00 »
¿Porqué no declaras la variable fuera del main para que su contexto sea global?
De esa manera todas las funciones del programa podrán usarla sin problemas, e incluso la entrada y salida de la interrupción usará menos ciclos de reloj al no tener que hacer respaldo de esa variable.

Desconectado hqv

  • PIC12
  • **
  • Mensajes: 70
RE: Problema transferencia variable entre main y interrupciones
« Respuesta #2 en: 10 de Julio de 2005, 03:19:00 »
gracias nocturno66 por la respuesta que me diste me sirvió...

hq