FRDM-KL46Z_Torreta Es un ejemplo del uso de arreglos para simular la secuencias de una torreta de patrulla
Dependencies: mbed
main.cpp@0:d0bd42a86870, 2019-06-26 (annotated)
- 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?
User | Revision | Line number | New 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 | } |