FRDM-KL46Z_Torreta Es un ejemplo del uso de arreglos para simular la secuencias de una torreta de patrulla

Dependencies:   mbed

Committer:
Antulius
Date:
Wed Jun 26 17:55:21 2019 +0000
Revision:
0:d0bd42a86870
FRDM-KL46Z_Torreta es un demo sobre la torreta de una patrulla

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Antulius 0:d0bd42a86870 1 /* ###########################################################################
Antulius 0:d0bd42a86870 2 ** Archivo : main.c
Antulius 0:d0bd42a86870 3 ** Proyecto : FRDM-KL46z_Torreta
Antulius 0:d0bd42a86870 4 ** Procesador : MKL46Z256VLL4
Antulius 0:d0bd42a86870 5 ** Herramienta : Mbed
Antulius 0:d0bd42a86870 6 ** Version : Driver 01.01
Antulius 0:d0bd42a86870 7 ** Compilador : GNU C Compiler
Antulius 0:d0bd42a86870 8 ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0
Antulius 0:d0bd42a86870 9 ** Descripción :
Antulius 0:d0bd42a86870 10 ** Este proyecto hace...
Antulius 0:d0bd42a86870 11 ** This module contains user's application code.
Antulius 0:d0bd42a86870 12 ** Componentes : GPIO, Timer, etc .
Antulius 0:d0bd42a86870 13 ** Configuraciones : Includes, Stacks y Drivers externos
Antulius 0:d0bd42a86870 14 ** Autores :
Antulius 0:d0bd42a86870 15 ** ATEAM Development Group
Antulius 0:d0bd42a86870 16 ** - Antulio Morgado Valle
Antulius 0:d0bd42a86870 17 **
Antulius 0:d0bd42a86870 18 ** Versión : Beta
Antulius 0:d0bd42a86870 19 ** Revisión : A
Antulius 0:d0bd42a86870 20 ** Release : 0
Antulius 0:d0bd42a86870 21 ** Bugs & Fixes :
Antulius 0:d0bd42a86870 22 ** Date : 20/10/2019
Antulius 0:d0bd42a86870 23 ** Added support for Led_RGB
Antulius 0:d0bd42a86870 24 ** 22/09/2018
Antulius 0:d0bd42a86870 25 ** Added LCD Menu, Beta version (with bugs)
Antulius 0:d0bd42a86870 26 **
Antulius 0:d0bd42a86870 27 ** ###########################################################################*/
Antulius 0:d0bd42a86870 28 /*
Antulius 0:d0bd42a86870 29 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 0:d0bd42a86870 30 : Includes
Antulius 0:d0bd42a86870 31 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 0:d0bd42a86870 32 */
Antulius 0:d0bd42a86870 33
Antulius 0:d0bd42a86870 34 #include "mbed.h"
Antulius 0:d0bd42a86870 35 /*
Antulius 0:d0bd42a86870 36 :...............................................................................
Antulius 0:d0bd42a86870 37 : Definiciones
Antulius 0:d0bd42a86870 38 :...............................................................................
Antulius 0:d0bd42a86870 39 */
Antulius 0:d0bd42a86870 40 #define Ticker_Rate 1000 // Periodo de interrupción (us)
Antulius 0:d0bd42a86870 41 /*
Antulius 0:d0bd42a86870 42 +-------------------------------------------------------------------------------
Antulius 0:d0bd42a86870 43 | Configuración de Puertos
Antulius 0:d0bd42a86870 44 +-------------------------------------------------------------------------------
Antulius 0:d0bd42a86870 45 */
Antulius 0:d0bd42a86870 46 Ticker Barrido; // Interrupción del Timer
Antulius 0:d0bd42a86870 47 BusOut Torreta(PTE16, PTE17, PTE18, PTE19, PTE20, PTE21, PTE22, PTE23);
Antulius 0:d0bd42a86870 48
Antulius 0:d0bd42a86870 49 /*
Antulius 0:d0bd42a86870 50 +-------------------------------------------------------------------------------
Antulius 0:d0bd42a86870 51 | Variables Globales de Usuario
Antulius 0:d0bd42a86870 52 +-------------------------------------------------------------------------------
Antulius 0:d0bd42a86870 53 */
Antulius 0:d0bd42a86870 54 uint8_t Secuencias[]={
Antulius 0:d0bd42a86870 55 0x03, 0x03, 0xC0, 0xC0, 0x03, 0x03, 0xC0, 0xC0,
Antulius 0:d0bd42a86870 56 0x03, 0x03, 0xC0, 0xC0, 0x03, 0x03, 0xC0, 0xC0,
Antulius 0:d0bd42a86870 57 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
Antulius 0:d0bd42a86870 58 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
Antulius 0:d0bd42a86870 59 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00,
Antulius 0:d0bd42a86870 60 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00,
Antulius 0:d0bd42a86870 61 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00,
Antulius 0:d0bd42a86870 62 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00,
Antulius 0:d0bd42a86870 63 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, 0x18, 0x24,
Antulius 0:d0bd42a86870 64 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, 0x18, 0x24,
Antulius 0:d0bd42a86870 65 0x04, 0x08, 0x10, 0x20, 0x04, 0x08, 0x10, 0x20,
Antulius 0:d0bd42a86870 66 0x04, 0x08, 0x10, 0x20, 0x04, 0x08, 0x10, 0x20,
Antulius 0:d0bd42a86870 67 0x20, 0x10, 0x08, 0x04, 0x20, 0x10, 0x08, 0x04,
Antulius 0:d0bd42a86870 68 0x20, 0x10, 0x08, 0x04, 0x20, 0x10, 0x08, 0x04,
Antulius 0:d0bd42a86870 69 0x04, 0x08, 0x10, 0x20, 0x20, 0x10, 0x08, 0x04,
Antulius 0:d0bd42a86870 70 0x04, 0x08, 0x10, 0x20, 0x20, 0x10, 0x08, 0x04,
Antulius 0:d0bd42a86870 71 0x88, 0x44, 0x11, 0x22, 0x88, 0x44, 0x22, 0x11,
Antulius 0:d0bd42a86870 72 0x88, 0x44, 0x11, 0x22, 0x88, 0x44, 0x22, 0x11,
Antulius 0:d0bd42a86870 73 0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88,
Antulius 0:d0bd42a86870 74 0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88,
Antulius 0:d0bd42a86870 75 0x3C, 0x00, 0xC3, 0x00, 0x3C, 0x00, 0xC3, 0x00,
Antulius 0:d0bd42a86870 76 0x3C, 0x00, 0xC3, 0x00, 0x3C, 0x00, 0xC3, 0x00,
Antulius 0:d0bd42a86870 77 0x3C, 0x3C, 0x00, 0x00, 0x3C, 0x3C, 0x00, 0x00,
Antulius 0:d0bd42a86870 78 0x3C, 0x3C, 0x00, 0x00, 0x3C, 0x3C, 0x00, 0x00,
Antulius 0:d0bd42a86870 79 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00,
Antulius 0:d0bd42a86870 80 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00,
Antulius 0:d0bd42a86870 81 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C,
Antulius 0:d0bd42a86870 82 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C,
Antulius 0:d0bd42a86870 83 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C,
Antulius 0:d0bd42a86870 84 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C,
Antulius 0:d0bd42a86870 85 0xF0, 0x30, 0x0C, 0x0F, 0x0C, 0x30, 0xF0, 0xC0,
Antulius 0:d0bd42a86870 86 0xF0, 0x30, 0x0C, 0x0F, 0x0C, 0x30, 0xF0, 0xC0,
Antulius 0:d0bd42a86870 87 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03,
Antulius 0:d0bd42a86870 88 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03,
Antulius 0:d0bd42a86870 89 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xF0,
Antulius 0:d0bd42a86870 90 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xF0,
Antulius 0:d0bd42a86870 91 0x00, 0xF0, 0x00, 0x0F, 0x00, 0xF0, 0x00, 0x0F,
Antulius 0:d0bd42a86870 92 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF };
Antulius 0:d0bd42a86870 93
Antulius 0:d0bd42a86870 94 uint16_t No_Secuencias=304; // Número de secuencias a desplegar
Antulius 0:d0bd42a86870 95 uint16_t i=0; // Indice para las secuencias
Antulius 0:d0bd42a86870 96 uint16_t delay=250; // Tiempo de retardo entre secuencias (en ms)
Antulius 0:d0bd42a86870 97 uint16_t contador=0; // Contador de mili segundos
Antulius 0:d0bd42a86870 98
Antulius 0:d0bd42a86870 99 /*
Antulius 0:d0bd42a86870 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 0:d0bd42a86870 101 | Definición de Vectores de Interrupción
Antulius 0:d0bd42a86870 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 0:d0bd42a86870 103 */
Antulius 0:d0bd42a86870 104 void Barrido_OnInterrupt(void)
Antulius 0:d0bd42a86870 105 {
Antulius 0:d0bd42a86870 106 /* Rutina de Atención a la Interrupción */
Antulius 0:d0bd42a86870 107 /* Write your code here ... */
Antulius 0:d0bd42a86870 108
Antulius 0:d0bd42a86870 109 contador++; // Incremeta el contador de mili segundos
Antulius 0:d0bd42a86870 110 if (contador == delay) // Contador es igual al retardo programado?
Antulius 0:d0bd42a86870 111 {
Antulius 0:d0bd42a86870 112 Torreta=Secuencias[i]; // Escribe la secuencia
Antulius 0:d0bd42a86870 113 i++; // Incrementa el índice
Antulius 0:d0bd42a86870 114 if (i >= No_Secuencias) i=0; // Es la última secuencia?
Antulius 0:d0bd42a86870 115 contador =0; // Reinicia contador de retardo
Antulius 0:d0bd42a86870 116 }
Antulius 0:d0bd42a86870 117 }
Antulius 0:d0bd42a86870 118 /* END Events */
Antulius 0:d0bd42a86870 119
Antulius 0:d0bd42a86870 120 /*
Antulius 0:d0bd42a86870 121 ________________________________________________________________________________
Antulius 0:d0bd42a86870 122 +
Antulius 0:d0bd42a86870 123 + Funciones Prototipo
Antulius 0:d0bd42a86870 124 +_______________________________________________________________________________
Antulius 0:d0bd42a86870 125 */
Antulius 0:d0bd42a86870 126
Antulius 0:d0bd42a86870 127 /*
Antulius 0:d0bd42a86870 128 #===============================================================================
Antulius 0:d0bd42a86870 129 |
Antulius 0:d0bd42a86870 130 | P R O G R A M A P R I N C I P A L
Antulius 0:d0bd42a86870 131 |
Antulius 0:d0bd42a86870 132 #===============================================================================
Antulius 0:d0bd42a86870 133 */
Antulius 0:d0bd42a86870 134 int main()
Antulius 0:d0bd42a86870 135 {
Antulius 0:d0bd42a86870 136 Barrido.attach_us(&Barrido_OnInterrupt,Ticker_Rate); // Periodo de interrupción de 1 ms (Ticker_Rate=1000)
Antulius 0:d0bd42a86870 137 while (true)
Antulius 0:d0bd42a86870 138 {
Antulius 0:d0bd42a86870 139 //El Programa principal no hace nada !!!
Antulius 0:d0bd42a86870 140 }
Antulius 0:d0bd42a86870 141 }