Paso 2: Programar el microcontrolador
Hay dos partes principales de este programa:
El código del programa se comentó, por favor refiérase a él.
- Un programa que crea un ciclo de iluminación modulada, el cual está vinculado a un reloj maestro que realiza un seguimiento de las cosas. El reloj principal mantiene el tiempo por un período de interrupción prefijado - por cualquier periodo que desee! Es decir, se interrumpió y se incrementa en una cantidad en función del tamaño de "modulation_step_period". Cada vez que el reloj principal se interrumpe, una variable llamado "intensity_index_counter" incrementos por 1. El valor del índice de "intensity_index_counter" trae un valor correspondiente de una matriz en el archivo de cabecera "Data.h" y pasa a "TACCR1". Esta matriz representan números 1440 sobre la base de un período de 24 horas (1440 = 24 horas * 60 min/h = x). Cada valor en la matriz representa el tiempo que la señal es activa sobre la "PWM_Period" - este es efectivamente el ciclo de trabajo. Observe que los números de la matriz se genera desde una fórmula gaussiana: f (x) = ("frequency")*EXP(-0.5*((x-Xc/2)/100)^2).
- Un programa que recibe una señal del UART y reprograma la intensidad de iluminación. Utilizando el puerto de RX en el microcontrolador, bytes son alimentados en uno por uno desde un módulo Bluetooth y leídos por el microcontrolador. Si el tamaño del carácter es mayor que 1 byte, cada byte se pasa uno por uno en una matriz "Current_Time []". Ya están llegando los bytes como tipo char, entonces son convertidos a tipo int y asignados a "true_time", que ocurre por caso. Si el microcontrolador recibe la información del UART una bandera es levantada "frame_received_flag" y el valor de "intensity_index_counter" es reemplazado por "true_time". * Tenga en cuenta que la aplicación escrita para el envío de bytes al microcontrolador envía 1, 2, 3 o 4 dígitos codifican en ascii.
- El código del programa fue compilado utilizando código compositor Studio.