Full Mecánica

Para todos los amantes de la Tecnología Mecánica

Definiciones y conceptos de Mecánica ==>>

Las líneas de codigo: uint_8 // #if //

El archivo: main.cpp

A línea uint_8 es la abreviación de Unsigned Int, así que uint_8 se refiere a un entero de 8 bits. Lo que sucede es que al usar solo int para definir un pin (cuando se usa el comando pinMode), es realmente un gasto inútil de memoria. Sin embargo, se tiene que balancear el ahorro de memoria vs. la simplicidad del código. Generalmente en programación se favorece a la simplicidad y facilidad de lectura del código por sobre el ahorro de memoria, a menos que sea un complejo código que necesite poner límites a la memoria.

 

En cuanto al archivo main.cpp ubicado dentro de la carpeta de Aduino, se pueden cosas muy interesantes (resaltadas en amarillo) como veremos a continuación. Pos-827.

 

#include <Arduino.h>

int main(void)

{

init ( );

#if defined(USBCON)

USBDevice.attach( );

#endif

Setup( );

For (;;) {

Loop( );

If (serialEventRun) serialEventRun( );

}

Return 0;

}

 

Si usted ya ha hecho programación en C, C++, o Java, debe estar familiarizado con el concepto de la función main. Esta función corre automáticamente cuando corre el programa. Main es el punto de partida para todo el programa. Esto es también cierto en los programas de Arduino, pero está oculto para el que escribe el código, a quien en cambo se le dice que implemente dos funciones - setup y loop --- dentro del sketch.

 

Si se mira cuidadosamente el archivo main.cpp, ignorando por ahora las primeras líneas, se puede ver que se llama a setup() que contiene  a su vez un lazo for sin condiciones, con la función loop convocada dentro del lazo (for).

 

El comando for(;;) es simplemente una forma horrible de escribir  while (true). Note que adicionalmente a la función loop, Hay también un comando if dentro de for que revisa por mensajes seriales y los atiende si surgen o aparecen.

 

Volviendo al comienzo de main.cpp, se puede ver que la primera línea es un comando include que extrae todas las definiciones del archivo de cabecera arduino.h mencionados antes. Luego la función main, invoca la función init(). Si usted busca, puede averiguar lo que hace ésta en el archivo wiring.c; este a su vez llama a la función sei, la cual permite o habilita las interrupciones.

 

las líneas siguientes: // pos 840

#if defined(USBCON)

 USBDevice.attach();

#endif

 

Son otro ejemplo de directiva preprocesador de C. este código es un poco como un comando if que se podría usar en el Sketch, pero la decisión del if no se hace cuando el Sketch esta ya corriendo en su lugar el #if es evaluado mientras el Sketch está siendo compilado. Esta directiva es una gran manera de conmutar porciones de código (Switch chunks) dentro y fuera de la construcción (del sketch), dependiendo si son necesarios para un tipo particular de tarjeta. En este caso, si el Arduino soporta USB, entonces se incluye el código para ensamblar el USB (inicializarlo); de otra manera, no hay punto del compilador que haga esto.

Si te sirvio el artículo, da un click en una publicidad de esta menera ayudaras a mantener viva la pagina.

Ambato-190525

 

Fullmecanica 2014 - Todos los Derechos Reservados