domingo, 16 de octubre de 2016

Variables automáticas y estáticas (MikroC)


Variables automáticas, son aquellas variables que mantienen su valor durante la ejecución del código de la función en la que han sido creadas, cuando termina la función los valores de estas variables se pierden. Estas variables son creadas por defecto sin la necesidad de usar la palabra reservada auto. Ejemplo.

unsigned short variable;

Variables estáticas, son aquellas variables que mantienes su valor durante y después de que se ejecute el código de la función en la que fueron creadas, esto significa que después de que la función termina esta variable sigue conservando su valor. Para declararla es necesario usar la palabra reservada static. Cuando se crea una variable de tipo estática esta empieza con el valor cero por defecto. Ejemplo.

static unsigned short variable;

Ejemplo 1.

unsigned short motor_paso()

{

   const char motor_p_simple[]={1,2,4,8};   //constante local

   static unsigned short paso;                                     //variable local estática

   return motor_p_simple[(paso++)&0x03];

}

void leer_temperatura()

{

   unsigned short temperatura;          //variable local automática

   char display_txt[4];                        //variable vector local automática

   temperatura=(5.0/1024.0)*(100.0)*adc_read(0);//ajuste de escala para el lm35

   if(temperatura>99){temperatura=99;}

   bytetostr(temperatura,display_txt);

   portb=((display_txt[2]&(0x0f))<<4)|(display_txt[1]&0x0f);

}

void main()

{

   portd=0;portb=0;

   trisd=0;trisb=0;

   while(1)

   {

      leer_temperatura();

      portd=motor_paso();

      delay_ms(100);

   }

}

No hay comentarios.:

Publicar un comentario