sábado, 3 de septiembre de 2016

Hola Mundo!

Hola Mundo!

En la entrada anterior aprendimos como crear un proyecto en MPLABX, ahora vamos a crear nuestro primer programa; el clásico Hola Mundo! de los microcontroladores.

Ya tenemos instalado el software necesario para la programación de nuestro microcontrolador, pero adicionalmente para realizar esta tarea también necesitamos el hardware, que será el encargado de grabar la memoria del MCU con el programa que queremos ejecutar en el.
Existen varias opciones en el mercado en mi caso cuento con un clone del PICkit2, y con la versión original del PICkit3; aunque en el MPLABX el PICkit2 aparece en amarillo, funciona correctamente, sin embargo este programador ya fue descontinuado y no cuenta con mas soporte.


Continuamos con el proyecto que creamos en la entrada pasada...
en source files damos clic derecho nuevo, otros, microchip embedded, XC8 y seleccionamos main.c


clic en siguiente, le ponemos el nombre de nuestra preferencia y clic en finalizar.


Ahora es momento de empezar a escribir el código de nuestro programa

Lo primero que haremos será agregar la siguiente línea debajo de la cabecera <xc.h>

#define _XTAL_FREQ 20000000

con esta instrucción le estamos diciendo al compilador que el cristal que vamos a usar con el MCU es de MHz, el compilador usara este valor para hacer los cálculos necesarios que nos permitirán utilizar la función __delay_ms().

A continuación agregaremos la siguiente línea

__CONFIG(FOSC_HS&WDTE_OFF & PWRTE_ON & LVP_OFF & CP_OFF & CPD_OFF & BOREN_ON);

con esta sentencia le estamos indicando al compilador como debe programar los bits del registro de configuración del MCU.
Los bits de configuración, son un registro especial del MCU, el cual es necesario establecer correctamente para poder que el MCU "corra". En este registro le decimos al MCU a que velocidad va a funcionar, que dispositivo será su reloj, que funcionalidad tendrá el pin master clear, activaremos o no diferentes protecciones que están disponibles para el MCU.


en nuestro caso estamos configurando el registro de la siguiente manera:
FOSC_HS      => usaremos un cristal de alta velocidad (20MHz)
WDTE_OFF  => deshabilitamos el perro guardián 
PWRTE_ON  => habilitamos el retardo de inicio 
LVP_OFF      => deshabilitamos la opción de programación con bajo voltaje 
CP_OFF         => deshabilitamos la protección de código 
CPD_OFF      => deshabilitamos la protección de datos 
BOREN_ON  => habilitamos el reinicio por bajo voltaje


Ahora nuestra rutina principal, consistirá en encender y apagar un LED conectado al pin RC2; para llevar a cabo nuestro objetivo necesitamos configurar el pin RC2 como una salida, para ello pondremos el bit 2 del registro TRISC en 0; luego debemos establecer un valor a la salida ese pin, y lo haremos modificando el bit 2 del registro PORTC.


como podemos observar en la imagen, hemos cargado el registro del puerto C con el valor cero; luego en el registro TRISC pusimos en cero el bit 2, y finalmente, tenemos un ciclo infinito en el cual estamos cargando en el bit 2 del registro PORTC (RC2) la negación del mismo cada 500 milisegundos.


Descarga aquí el proyecto en MPLABX

1 comentario:

  1. hola amigo oye me interesa el pcb que realizaste para tu micro crees que me lo puedas proporcionar ????? mi correo es carlostapia_94@hotmail.com

    ResponderEliminar