“¡hola mundo!” en c18 (con bootloader

Upload: estetico

Post on 06-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 “¡Hola Mundo!” en C18 (Con Bootloader

    1/5

     

    “¡Hola Mundo!” en C18 (conBootloader  

    ELECTRÓNICA 

    etiquetas: tutoriales 

    http://www.neoteo.com/hola-mundo-en-c18-con-bootloader/  

    En la actualidad existe una enorme variedad de lenguajes de programación para todo tipo de medioselectrónicos capaces de interactuar con un usuario. Para un ordenador, un teléfono móvil, unautomatismo y, por supuesto, para un simple y sencillo microcontrolador . Dentro de este vastouniverso, siempre hay una etapa considerada “el inicio del aprend izaje ”. La mayoría de laspersonas no comienzan sus experiencias desarrollando un programa capaz de controlar la ISS, sinoque intentan partir de un objetivo (o logro) mínimo para luego escalar en complejidad susconocimientos. En todo el mundo, a la primera experiencia en programación se la conocecomo “¡Hola Mundo!”. Gracias a la colaboración de Sebitronic y Jonbul  (entre otros), iniciamosnuestro camino en C18. Y tú, ¿qué esperas para sumarte? 

    Una pequeña lámpara, un LED, un motor que gira gracias a una batería vieja que encontramos en

    algún cajón de trastos, o un LCD, cualquier artefacto al que podamos darle “vida” o actividad setransforma en nuestro “¡Hola Mundo!”, muchas veces, sin darnos cuenta. Ignorada por muchos, lahistoria de esta célebre frase nace en los Laboratorios Bell  en un tutorial de introducción allenguaje B(que luego sería reemplazado por el lenguaje C que hoy conocemos) escrito por BrianKernighan en 1972. Por supuesto, todo esto en idioma inglés y con la frase “hello world” , escritacon minúsculas y sin los signos de admiración. El mundo de la  programación la convirtió en lacelebridad que es hoy y, como no podía ser de otra manera, en la programación de losmicrocontroladores también es muy común encontrarla. Sin embargo, llegar a dominar unavisualización gráfica o alfanumérica que exprese estas palabras no es una tarea sencilla. Debido a

    http://www.neoteo.com/category/electronica/http://www.neoteo.com/category/electronica/http://www.neoteo.com/tag/tutoriales/http://www.neoteo.com/tag/tutoriales/http://www.neoteo.com/tag/tutoriales/http://www.neoteo.com/hola-mundo-en-c18-con-bootloader/http://www.neoteo.com/hola-mundo-en-c18-con-bootloader/http://www.neoteo.com/microcontroladores-construye-un-lcd-para-i2c-16092.neohttp://www.neoteo.com/microcontroladores-construye-un-lcd-para-i2c-16092.neohttp://www.neoteo.com/microcontroladores-construye-un-lcd-para-i2c-16092.neohttp://www.neoteo.com/10-consejos-para-un-programador-novato.neohttp://www.neoteo.com/10-consejos-para-un-programador-novato.neohttp://www.neoteo.com/10-consejos-para-un-programador-novato.neohttp://www.neoteo.com/hola-mundo-en-c18-con-bootloader/http://www.neoteo.com/10-consejos-para-un-programador-novato.neohttp://www.neoteo.com/microcontroladores-construye-un-lcd-para-i2c-16092.neohttp://www.neoteo.com/hola-mundo-en-c18-con-bootloader/http://www.neoteo.com/tag/tutoriales/http://www.neoteo.com/category/electronica/

  • 8/17/2019 “¡Hola Mundo!” en C18 (Con Bootloader

    2/5

    esto, la tarea que puede realizarse y comprobarse con un microcontrolador durante los primerospasos del aprendizaje es encender un LED.

    Lograr que un sencillo LED encienda y apague puede significar, para muchas mentes creativas, lapiedra basal de un imperio de industrias electrónicas dedicadas a la construcción de balizas, lucesintermitentes de advertencia y/o luces indicadoras de giro para cualquier tipo de vehículos. Es decir,para muchos, lo que puede parecer poco quizás resulte todo lo que se necesita para triunfar. Perovolviendo al mundo real, el mensaje que intentamos transmitirte es que, por más que te parezca unaactividad menor o de poca importancia, lograr un “¡Hola Mundo!”  puede llevarte tan lejos comonunca has imaginado. Es por esto que, gracias a la ayuda de amigos del  foro NeoTeo, vamos a darel primer paso en nuestro camino para aprender, practicar y progresar en este lenguaje de

    programación tan apasionante y poderoso como es C18. Asumimos, por supuesto, que ya hasinstalado en tu ordenador la última versión de MPLAB IDE y la versión de evaluación o estudiantildel MPLAB C Compiler for PIC18 MCUs. Existen muchos tutoriales en la Web sobre cómo instalarestos programas y, haciendo nuevamente referencia a los amigos del foro NeoTeo, puedesdescargar desde aquí el completoTutorial de C18 de Suky .

    http://www.neoteo.com/matriz-de-led-8x8-parte-ii.neohttp://www.neoteo.com/matriz-de-led-8x8-parte-ii.neohttp://www.neoteo.com/matriz-de-led-8x8-parte-ii.neohttp://www.neoteo.com/foro/forum.php#electronicahttp://www.neoteo.com/foro/forum.php#electronicahttp://www.neoteo.com/foro/forum.php#electronicahttp://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&redirects=c18http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&redirects=c18http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&redirects=c18http://www.neoteo.com/foro/f29/tutorial-c18-47/http://www.neoteo.com/foro/f29/tutorial-c18-47/http://cdni.neoteo.com/C126_1024_41138.jpghttp://www.neoteo.com/foro/f29/tutorial-c18-47/http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&redirects=c18http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002http://www.neoteo.com/foro/forum.php#electronicahttp://www.neoteo.com/matriz-de-led-8x8-parte-ii.neo

  • 8/17/2019 “¡Hola Mundo!” en C18 (Con Bootloader

    3/5

     

    Características a destacar del compilador C18El MPLAB C18 es el compilador específico de Microchip para su línea demicrocontroladores PIC18 y tiene una sintaxis similar al lenguaje C convencional, con la salvedadde que se le han agregado diversas adaptaciones para transformarlo en una herramienta másapropiada para trabajar dentro del ambiente de programación de los PIC. Este compilador se manejasin inconvenientes dentro del entorno visual del MPLAB, y sus características sobresalientes son:

    Sólo sirve y está optimizado para los PIC 18.

    Posee las funciones estándar del lenguaje C.

    Permite la inclusión de trozos de lenguaje ASM.

    Soporta interrupciones.

    Contiene librerías para comunicaciones SPI, I2C, USART, y periféricos externos como LCDinteligentes.

    Gracias a que utiliza el MPLAB, el entorno de programación es similar al utilizado en ASM.

    Posee una versión estudiantil gratuita. Sólo basta con registrarse en la Web de Microchip paraobtenerla. Además posee una versión de demostración de 60 días de evaluación.

    http://www.neoteo.com/ds1307-reloj-en-tiempo-real-con-18f2550.neohttp://www.neoteo.com/ds1307-reloj-en-tiempo-real-con-18f2550.neohttp://www.neoteo.com/ds1307-reloj-en-tiempo-real-con-18f2550.neohttp://www.neoteo.com/conectando-un-pic-al-puerto-serie-rs232.neohttp://www.neoteo.com/conectando-un-pic-al-puerto-serie-rs232.neohttp://www.neoteo.com/conectando-un-pic-al-puerto-serie-rs232.neohttp://cdni.neoteo.com/C127_1024_41139.jpghttp://www.neoteo.com/conectando-un-pic-al-puerto-serie-rs232.neohttp://www.neoteo.com/ds1307-reloj-en-tiempo-real-con-18f2550.neo

  • 8/17/2019 “¡Hola Mundo!” en C18 (Con Bootloader

    4/5

     

    Estas características convierten al compilador MPLAB C18 en una herramienta ideal para losdesarrollos que podamos realizar con los PIC de la línea 18F y, en particular, el 18F2550 queutilizamos en nuestra entrenadora NeoTeo. Al instalar el MPLAB C18 en el ordenador, este secoloca por defecto en un directorio que el instalador genera y queda como C:/MCC18. Luego, secrean, entre otras, las siguientes carpetas que contienen los archivos necesarios para utilizar elcompilador y que deben ser incluidos en los proyectos que intentemos construir:

    h: Este directorio contiene los archivos de cabecera (Header Files) de la librería estándar de C y losarchivos con las especificaciones del procesador PIC seleccionado (en nuestro caso, el 18F2550).

    lib: Contiene las librerías estándar del lenguaje C (clib.lib o clib_e.lib), las propias de losmicrocontroladores PIC (p18xxx.lib o p18xxx_e.lib donde xxx especifica el dispositivo) y los módulosstart-up (c018.lib, c018_e.lib, c018i.lib, c018i_e.lib, c018is.lib, c018iz_e.lib)

    lkr : Contiene los archivos que utilizará el enlazador del lenguaje (Linker Script File).

    mpasm: Contiene los archivos de cabecera que utiliza el ensamblador MPASM para los dispositivossoportados por el compilador MPLAB C18.

    http://www.neoteo.com/entrenador-para-pic-18f2550.neohttp://www.neoteo.com/entrenador-para-pic-18f2550.neohttp://www.neoteo.com/entrenador-para-pic-18f2550.neohttp://cdni.neoteo.com/C129_1024_41141.jpghttp://cdni.neoteo.com/C128_1024_41140.jpghttp://www.neoteo.com/entrenador-para-pic-18f2550.neo

  • 8/17/2019 “¡Hola Mundo!” en C18 (Con Bootloader

    5/5

    ¿Con qué vamos a trabajar? Lo primero que debemos construir es una pequeña placa que se pueda instalar de manera sencillaen la entrenadora NeoTeo (en el espacio reservado para el puerto B) y que incorpore al menos 8LEDs, uno por cada pin de salida del puerto. En nuestro desarrollo, como puedes ver en la imagensuperior, hemos incorporado, además, 2 pulsadores para ser utilizados en programas y actividadesfuturas, es decir, cuando comencemos a realizar rutinas más complejas ya que, dentro de un mismopuerto que encenderá LEDs, leeremos interruptores y aprovecharemos a darle más acción al puerto.Para facilitar el trabajo de carga y renovación de programas sobre el PIC, utilizaremos el sistema

    Bootloader , que ya hemos visto en artículos anteriores. Esto nos facilitará la tarea de realizarensayos a granel con la sola conexión USB de la entrenadora, que le brindará alimentación y datos anuestras prácticas.

    Partimos de un programa básico Para realizar las prácticas en C18 y comenzar con una base que funcione, te proponemos utilizar losarchivos que se encuentran al final de este artículo que, como puedes comprobar en los videos,funcionan. A partir de ellos, tú podrás realizar las reformas y ampliaciones que quieras hasta lograrfuncionamientos más elaborados. Por ejemplo, puedes realizar un contador que, al pulsar sobre elbotón que se encuentra en la placa bootloader, provoque el cambio de LED que se encienda sobre laplaca de muestra, o también puedes intentar hacer desplazar de un lado a otro un LED encendido y,

    por supuesto, encender todos los LEDs, apagar uno con el pulsador o hacer que uno apagado semueva de un lado a otro de manera automática y miles de variantes que se te ocurran realizarcon 8 LEDs.

    Dentro de los ejemplos que te dejamos al final del artículo para que puedas descargar, no debesalterar las partes ubicadas al inicio del archivo “main.c” , donde se invoca la configuración de los“fuses” y el direccionamiento correcto de los vectores al usar el sistema bootloader. Si alteras algunode esos valores, el sistema puede adoptar un comportamiento impredecible y puede sucederque debas cargar nuevamente el archivo bootloader para recomenzar el trabajo. Es decir,puedes llegar a corromper el bootloader dentro del PIC y esto provocaría una catástrofe que sólo seremedia comenzando todo de nuevo. No te alarmes si todo empieza a funcionar de manera

    escandalosa o sin sentido. Vuelve todo atrás, revisa tus pasos previos y allí encontrarás elerror . Reinicia la carga de los archivos desde cero y todo vuelve a comenzar.

    Por lo tanto, debes observar que hemos marcado de manera muy clara la línea divisoria desdedonde puedes comenzar a trabajar . A partir de allí comienza tu magia. Recuerda que tienes todoun grupo de gente que está deseosa de ver tus avances y trabajos. En el foro NeoTeo hay un grupoimportante de amigos que esperan aprender este lenguaje y tú puedes participar de manera activacon tus códigos. Observa bien lo que hemos hecho, cambia un bit de lugar, cambia un pulsador delugar, intenta construir un contador, avanza un paso, el que quieras, el que puedas ycompártelo. Enséñanos tú a nosotros. Busca mejorar nuestro código. ¿Nuestro código tienedefectos? ¿Cuáles, dónde, por qué? De eso se trata la idea, de avanzar poco a poco entre

    muchos hasta lograr desarrollos importantes en este programa. Te recomendamos, como siempre,que acompañes tus códigos o ensayos con videos donde se pueda apreciar y demostrar que elcódigo funciona. Ahora tienes más herramientas: cuentas con el bootloader que te facilitará lasprácticas y también cuentas con dos programas de ejemplos para dar el paso inicial. ¡Vamos amigo,te seguimos! 

    Encender y Apagar un LED:Descarga Intermitente o Blinker :Descarga Circuito impreso:Descargar  

    http://www.neoteo.com/pov-escribe-con-luz-en-el-aire.neohttp://www.neoteo.com/pov-escribe-con-luz-en-el-aire.neohttp://www.neoteo.com/pov-escribe-con-luz-en-el-aire.neohttp://www.neoteo.com/pov-escribe-con-luz-en-el-aire.neohttp://www.neoteo.com/microcontroladores-sumando-pulsadores.neohttp://www.neoteo.com/microcontroladores-sumando-pulsadores.neohttp://www.neoteo.com/microcontroladores-sumando-pulsadores.neohttp://www.neoteo.com/-19871-bootloader-para-18f2550-entrenador-neoteo.neohttp://www.neoteo.com/-19871-bootloader-para-18f2550-entrenador-neoteo.neohttp://www.neoteo.com/-19871-bootloader-para-18f2550-entrenador-neoteo.neohttp://www.neoteo.com/-19871-bootloader-para-18f2550-entrenador-neoteo.neohttp://www.neoteo.com/foro/f29-electronica-digitalhttp://www.neoteo.com/foro/f29-electronica-digitalhttp://www.neoteo.com/foro/f29-electronica-digitalhttp://www.4shared.com/file/DHBmW5rw/PRENDE_APAGA_C18_BOOT.htmlhttp://www.4shared.com/file/DHBmW5rw/PRENDE_APAGA_C18_BOOT.htmlhttp://www.4shared.com/file/DHBmW5rw/PRENDE_APAGA_C18_BOOT.htmlhttp://www.4shared.com/file/gJ8MaIyA/BLINK_B3_C18_BOOT.htmlhttp://www.4shared.com/file/gJ8MaIyA/BLINK_B3_C18_BOOT.htmlhttp://www.4shared.com/file/gJ8MaIyA/BLINK_B3_C18_BOOT.htmlhttp://www.4shared.com/document/VHUdnFVT/LEDs.htmlhttp://www.4shared.com/document/VHUdnFVT/LEDs.htmlhttp://www.4shared.com/document/VHUdnFVT/LEDs.htmlhttp://www.4shared.com/document/VHUdnFVT/LEDs.htmlhttp://www.4shared.com/file/gJ8MaIyA/BLINK_B3_C18_BOOT.htmlhttp://www.4shared.com/file/DHBmW5rw/PRENDE_APAGA_C18_BOOT.htmlhttp://www.neoteo.com/foro/f29-electronica-digitalhttp://www.neoteo.com/-19871-bootloader-para-18f2550-entrenador-neoteo.neohttp://www.neoteo.com/-19871-bootloader-para-18f2550-entrenador-neoteo.neohttp://www.neoteo.com/microcontroladores-sumando-pulsadores.neohttp://www.neoteo.com/pov-escribe-con-luz-en-el-aire.neohttp://www.neoteo.com/pov-escribe-con-luz-en-el-aire.neo