04.06.2013 Views

MPLAB X y Tecnicas de Programacion con librerias ... - mcelectronics

MPLAB X y Tecnicas de Programacion con librerias ... - mcelectronics

MPLAB X y Tecnicas de Programacion con librerias ... - mcelectronics

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

TCPIPConfig.h<br />

Como vimos, se utiliza para habilitar o <strong>de</strong>shabilitar funciones <strong>de</strong>l stack como DNS, FTP, SNTP, SSL<br />

y UART <strong>de</strong>pendiendo <strong>de</strong> las características <strong>de</strong> nuestra aplicación y la memoria disponible en el<br />

micro.<br />

MainDemo.c<br />

Es el programa principal, en el archivo MainDemo.c en<strong>con</strong>tramos el mapeo <strong>de</strong> puertos, la<br />

<strong>con</strong>figuración <strong>de</strong> los registros <strong>de</strong> la USART, los ADC y la inicialización <strong>de</strong> la placa. Por ejemplo<br />

ADCON0=0x0D; Para seleccionar AN3 como entrada analógica.<br />

CustomHTTPApp.c<br />

Por último, el cuarto archivo que necesitamos para una aplicación básica es CustomHTTPApp.c,<br />

en el cual se encuentran las funciones callback, es <strong>de</strong>cir aquellas que interactúan <strong>con</strong> la pagina<br />

web.<br />

FUNCIONES CALLBACK<br />

Echemos un vistazo al archivo CustomHTTPApp.c don<strong>de</strong> se encuentran las funciones Callback. En<br />

este ejemplo vamos a mostrar el estado <strong>de</strong> un LED en la página web por medio <strong>de</strong> ON y OFF.<br />

La función Callback <strong>con</strong>tiene el nombre y el valor <strong>de</strong> la variable dinámica ( led ) que va a ser<br />

mostrada en la web. Un error común es enviar directamente al buffer Ethernet el estado <strong>de</strong>l led<br />

mediante la variable int LED_IO.<br />

Hay que tener en cuenta que SOLO SE PUEDEN ENVIAR STRINGS POR ETHERNET, por lo que, en<br />

numerosas ocasiones usamos itoa o ftoa para <strong>con</strong>vertir los tipos <strong>de</strong> dato. Analicemos el código:<br />

ROM BYTE ESTADO_LED_UP[] = “ON";<br />

ROM BYTE ESTADO_LED_DOWN[] = “OFF";<br />

void HTTPPrint_led(void)<br />

{<br />

TCPPutROMString(sktHTTP, (LED_IO?ESTADO_LED_UP:ESTADO_LED_DOWN));<br />

}<br />

En este caso, en lugar <strong>de</strong> usar los <strong>con</strong>versores <strong>de</strong> tipo, creamos dos variables auxiliares<br />

ESTADO_LED_UP y ESTADO_LED_DOWN para mostrar el estado <strong>de</strong>l led mediante ON y OFF.<br />

La función void HTTPPrint_led(void) envía a la página web el valor <strong>de</strong> la variable dinámica led.<br />

Para chequear el estado <strong>de</strong>l puerto RF3 (don<strong>de</strong> esta mapeado el led) utilizamos la sentencia<br />

<strong>con</strong>dicional IF, aquí representada en una línea:<br />

LED_IO?ESTADO_LED_UP:ESTADO_LED_DOWN<br />

24

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!