MPLAB X y C18: Encender y apagar un LED con un boton

Seguimos con las publicaciones en C18, en ejemplos anteriores hemos visto la manera de manipular un puerto como salida ahora toca el turno de ver como se manipula un pin como salida, para ello tenemos un botón conecto al pin RE0 con su resistencia de pull-down también se ha colocado un LED con su debida resistencia en el pin RE1 y se agrego una resistencia a +5V en el pin MCLR par que el circuito funcione correctamente, así queda el circuito que utilizaremos:
Lo que hará el circuito será encender o apagar el LED cada que se presione el botón. Para el código tenemos dos archivos el “Config_FusesPIC.h” y el “main.c”, como ya sabemos en el primero tenemos la configuración de todos los FUSES del PIC, el segundo es el archivo donde esta todo el código para que el circuito trabaje adecuadamente. Es importante recordar que se ocupara el oscilador interno configurado a 4MHz.

La configuración de los FUSES queda de la siguiente manera:
Ahora nuestro código en el archivo “main.c” nos queda de la siguiente forma:
Parte del código ya se conoce por que se ha utilizado en ejemplos anteriores lo nuevo en este ejemplo es el uso de etiquetas. Tanto para referirse a un PORT como a un TRIS, el uso de etiquetas facilita el acceso a dichos pines y el código se ve mucho mejor. Para referirse a los pines Reo y RE1 se tiene lo siguiente:

#define BUTTON PORTEbits.RE0
#define BUTTON_TRIS TRISEbits.RE0
#define LED_STATUS PORTEbits.RE1
#define LED_STATUS_TRIS TRISEbits.RE1

Después se configura el oscilador interno, se dice que van a ser entradas digitales y se inicializan los puertos usando las etiquetas. Ahora dentro del while tenemos un simple ejemplo en donde se revisa el estado del pulsador, agregamos un pequeño retardo para evitar rebotes mecánicos de los pulsadores, después tenemos la instrucción LED_STATUS^=1; lo que hace es intercambiar el estado del pin, por ejemplo para la primera vez que se presione el botón el LED encenderá, si el botón se vuelve a presionar el LED se apagara.

Aquí el enlace para DESCARGAR las librerias disponibles desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare lo mas pronto posible responderlas...
  • Actualización (18/10/2016): Se corrigió enlace de descarga.

No hay comentarios:

Publicar un comentario