El objetivo de esta práctica es familiarizarse con Miuva 18 y entender el funcionamiento del encendido y apagado de un LED utilizando PIC C Compiler.
Procedimiento
Por la forma en la que está conectado el led Miuva 18 es necesario que enviemos un “1” lógico para encenderlo. La mofificación de este bit puede hacerse con cualquiera de las siguientes intrucciones:
output_low(PIN_E0); //Manda una señal en bajo al pin E0 output_high(PIN_E0); //Manda una señal en alto al pin E0 output_toggle(PIN_E0); //Invierte la señal actual del pin E0
En los PICs existe un registro llamado TRISx el cual está asociado a definir si un puerto será usado como entrada o salida, en este registro asignamos un “1” lógico a los pines del puerto que serán entradas y un “0” a los que serán salidas. Por ejemplo: Para definir los pines del puerto B como salidas (por que ahí están conectado el LED) el registro TRISB tiene que tener el valor 0x00. Esto lo hacemos con la siguiente línea de código:
set_tris_e(0x00);
Ahora solo queda definir un “ciclo infinito” para que Miuva se encargue de repetir el proceso de:
Cambiar el estado del LED -> Esperar 1 segundo
Esto lo podemos hacer de diferentes formas, con un ciclo while o for; por ejemplo:
while(true){ //Todo lo que esté aquí dentro se repetirá infinitamente }
Con esto podemos armar el siguiente código con el cual el led RGB de Miuva se encenderá y apagará cada 200 milisegundos.
Código en PIC C
#include <18F46K22.h> // la librería del PIC #fuses HSM,NOWDT,PUT,BROWNOUT, MCLR,NOLVP,NOXINST,NOWRT,NOPLLEN #use delay(clock = 12MHz) //Seleccionamos la frecuencia de reloj de 12MHz void main(){ //Función principal set_tris_b(0x00); //Configuramos el puerto B como salida while(true){ //Inicia el Ciclo infinito output_toggle(PIN_B1); //Invertimos el valor actual del Pin delay_ms(1000); //Esperamos 200 milisegundos //Acaba el ciclo infinito } //Acaba la función principal }