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
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