programa de torreta
Dependencies: mbed
main.cpp
00001 /* ############################################################################# 00002 ** Archivo : main.c 00003 ** Proyecto : STM32-F103C8_Torreta 00004 ** Procesador : STM32F103C8T6 00005 ** Plataforma : Blue Pill 00006 ** Herramienta : Mbed Compiler 00007 ** Version : Driver 01.01 00008 ** Compilador : GNU C Compiler 00009 ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0 00010 ** Descripción : 00011 ** Este proyecto hace... 00012 ** This module contains user's application code. 00013 ** Componentes : GPIO, Timer, etc . 00014 ** Configuraciones : Includes, Stacks y Drivers externos 00015 ** Autores : 00016 ** ATEAM Development Group: 00017 ** - Antulio Morgado Valle 00018 ** 00019 ** Versión : Beta 00020 ** Revisión : A 00021 ** Release : 0 00022 ** Bugs & Fixes : 00023 ** Date : 20/10/2019 00024 ** Added support for Led_RGB 00025 ** 22/09/2018 00026 ** Added LCD Menu, Beta version (with bugs) 00027 ** 00028 ** ###########################################################################*/ 00029 /* 00030 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 00031 : Includes 00032 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 00033 */ 00034 #include "stm32f103c8t6.h" 00035 #include "mbed.h" 00036 /* 00037 :............................................................................... 00038 : Definiciones 00039 :............................................................................... 00040 */ 00041 #define Ticker_Rate 1000 // Periodo de interrupción (us) 00042 /* 00043 +------------------------------------------------------------------------------- 00044 | Configuración de Puertos 00045 +------------------------------------------------------------------------------- 00046 */ 00047 Ticker Barrido; // Interrupción del Timer 00048 //BusOut Torreta(D0,D1,D2,D3,D4,D5,D6,D7); // Utilizando las definiciones Arduino 00049 BusOut Torreta(PB_4,PB_3,PA_15,PA_12,PA_11,PA_10,PA_9,PA_8); // 00050 DigitalOut Led_Monitor (LED1); // Led monitor de la Tarjeta STM32F103C8 00051 //PwmOut Buzzer(PB_1); // PB1_TIM3_CH4N 00052 /* 00053 +------------------------------------------------------------------------------- 00054 | Variables Globales de Usuario 00055 +------------------------------------------------------------------------------- 00056 */ 00057 uint8_t Secuencias[]={ 00058 0x03, 0x03, 0xC0, 0xC0, 0x03, 0x03, 0xC0, 0xC0, // 8 00059 0x03, 0x03, 0xC0, 0xC0, 0x03, 0x03, 0xC0, 0xC0, // 16 00060 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, // 24 00061 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, // 32 00062 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0xC0, // 40 00063 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00, // 48 00064 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00, // 56 00065 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00, // 64 00066 0x07, 0x08, 0x13, 0x20, 0xC0, 0x20, 0xC8, 0x04, // 72 00067 0x07, 0x08, 0x13, 0x20, 0xC0, 0x20, 0xC8, 0x04, // 80 00068 0x07, 0x0B, 0xD0, 0xE0, 0x07, 0x0B, 0xD0, 0xE0, // 88 00069 0x07, 0x0B, 0xD0, 0xE0, 0x07, 0x0B, 0xD0, 0xE0, // 96 00070 0x23, 0x13, 0xC8, 0xC4, 0x23, 0x13, 0xC8, 0xC4, // 104 00071 0x23, 0x13, 0xC8, 0xC4, 0x23, 0x13, 0xC8, 0xC4, // 112 00072 0x23, 0x10, 0xC8, 0x04, 0x23, 0x10, 0xC8, 0x04, // 120 00073 0x23, 0x10, 0xC8, 0x04, 0x23, 0x10, 0xC8, 0x04, // 128 00074 0x07, 0x43, 0xD0, 0xC4, 0x07, 0x43, 0xD0, 0xC4, // 136 00075 0x07, 0x43, 0xD0, 0xC4, 0x07, 0x43, 0xD0, 0xC4, // 144 00076 00077 0x03, 0x04, 0x08, 0x10, 0x20, 0xC0, 0x20, 0x10, // 152 00078 0x08, 0x04, 0x03, 0x04, 0x08, 0x10, 0x20, 0xC0, // 160 00079 0x20, 0x10, 0x08, 0x04, 0x03, 0x04, 0x08, 0x10, // 168 00080 0x20, 0xC0, 0x20, 0x10, 0x08, 0x04, 0x03, 0x04, // 176 00081 0x08, 0x10, 0x20, 0xC0, 0x20, 0x10, 0x08, 0x04, // 184 00082 00083 0x03, 0x18, 0xC0, 0x3C, 0x03, 0x24, 0xC0, 0x3C, // 192 00084 00085 0x04, 0x08, 0x10, 0x20, 0x04, 0x08, 0x10, 0x20, // 200 00086 0x04, 0x08, 0x10, 0x20, 0x04, 0x08, 0x10, 0x20, // 208 00087 0x20, 0x10, 0x08, 0x04, 0x20, 0x10, 0x08, 0x04, // 216 00088 0x20, 0x10, 0x08, 0x04, 0x20, 0x10, 0x08, 0x04, // 224 00089 0x03, 0x04, 0x03, 0x08, 0x03, 0x10, 0x03, 0x20, // 232 00090 0x03, 0x04, 0x03, 0x08, 0x03, 0x10, 0x03, 0x20, // 240 00091 0xC0, 0x20, 0xC0, 0x10, 0xC0, 0x08, 0xC0, 0x04, // 248 00092 0xC0, 0x20, 0xC0, 0x10, 0xC0, 0x08, 0xC0, 0x04, // 256 00093 0x04, 0x08, 0x10, 0x20, 0x20, 0x10, 0x08, 0x04, // 264 00094 0x04, 0x08, 0x10, 0x20, 0x20, 0x10, 0x08, 0x04, // 272 00095 0x88, 0x44, 0x11, 0x22, 0x88, 0x44, 0x22, 0x11, // 280 00096 0x88, 0x44, 0x11, 0x22, 0x88, 0x44, 0x22, 0x11, // 288 00097 0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88, // 296 00098 0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88, // 304 00099 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, // 312 00100 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, // 320 00101 0x18, 0x81, 0x3C, 0xC3, 0x24, 0x42, 0x0F, 0xF0, // 328 00102 0x18, 0x81, 0x3C, 0xC3, 0x24, 0x42, 0x0F, 0xF0, // 336 00103 0x18, 0xC3, 0x24, 0xC3, 0x18, 0xC3, 0x24, 0xC3, // 344 00104 0x18, 0xC3, 0x24, 0xC3, 0x18, 0xC3, 0x24, 0xC3, // 352 00105 0x20, 0x30, 0x10, 0x18, 0x08, 0x0C, 0x04, 0x03, // 360 00106 0x04, 0x0C, 0x08, 0x18, 0x10, 0x30, 0x20, 0xC0, // 368 00107 0x20, 0x30, 0x10, 0x18, 0x08, 0x0C, 0x04, 0x03, // 376 00108 0x04, 0x0C, 0x08, 0x18, 0x10, 0x30, 0x20, 0xC0, // 384 00109 0x81, 0x81, 0x7E, 0x7E, 0x81, 0x81, 0x7E, 0x7E, // 392 00110 0x81, 0x7E, 0x81, 0x7E, 0x81, 0x7E, 0x7E, 0x81, // 400 00111 0x81, 0x00, 0x81, 0x00, 0x7E, 0x00, 0x7E, 0x00, // 408 00112 0x81, 0x00, 0x81, 0x00, 0x7E, 0x00, 0x7E, 0x00, // 416 00113 0x80, 0x00, 0x01, 0x00, 0x7E, 0x00, 0x7E, 0x00, // 424 00114 0x80, 0x00, 0x01, 0x00, 0x7E, 0x00, 0x7E, 0x00, // 432 00115 00116 0x33, 0xCC, 0x33, 0xCC, 0x33, 0xCC, 0x33, 0xCC, // 440 00117 0x03, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0xC0, 0x3C, // 448 00118 0x03, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0xC0, 0x3C, // 456 00119 0x3C, 0x00, 0xC3, 0x00, 0x3C, 0x00, 0xC3, 0x00, // 464 00120 0x3C, 0x00, 0xC3, 0x00, 0x3C, 0x00, 0xC3, 0x00, // 472 00121 0x3C, 0x3C, 0x00, 0x00, 0x3C, 0x3C, 0x00, 0x00, // 480 00122 0x3C, 0x3C, 0x00, 0x00, 0x3C, 0x3C, 0x00, 0x00, // 488 00123 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, // 496 00124 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, // 504 00125 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, // 512 00126 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, // 520 00127 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C, // 528 00128 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C, // 536 00129 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C, // 544 00130 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C, // 552 00131 0x00, 0x28, 0x00, 0x14, 0x00, 0x28, 0x00, 0x14, // 560 00132 0x00, 0x28, 0x00, 0x14, 0x00, 0x28, 0x00, 0x14, // 568 00133 0xC0, 0xF0, 0x30, 0x0C, 0x0F, 0xC0, 0xF0, 0x30, // 576 00134 0x0C, 0x0F, 0xC0, 0xF0, 0x30, 0x0C, 0x0F, 0x03, // 584 00135 0x03, 0x0F, 0x0C, 0x30, 0xF0, 0xC0, 0x0F, 0x0C, // 592 00136 0x30, 0xF0, 0xC0, 0x0F, 0x0C, 0x30, 0xF0, 0xC0, // 600 00137 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03, // 608 00138 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03, // 616 00139 0x00, 0x03, 0x0F, 0x0C, 0x3C, 0x30, 0xF0, 0xC0, // 624 00140 0x00, 0x03, 0x0F, 0x0C, 0x3C, 0x30, 0xF0, 0xC0, // 632 00141 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03, // 640 00142 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03, // 648 00143 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xF0, // 656 00144 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xF0, // 674 00145 0x00, 0xF0, 0x00, 0x0F, 0x00, 0xF0, 0x00, 0x0F, // 682 00146 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF }; 00147 00148 uint16_t No_Secuencias=689; // Número de secuencias a desplegar 00149 uint16_t i=0; // Indice para las secuencias 00150 uint16_t delay=250; // Tiempo de retardo entre secuencias (en ms) 00151 uint16_t contador=0; // Contador de mili segundos 00152 00153 /* END Global Variables */ 00154 /* 00155 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00156 | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción 00157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00158 */ 00159 void Barrido_OnInterrupt(void); 00160 00161 /* 00162 #=============================================================================== 00163 | 00164 | P R O G R A M A P R I N C I P A L 00165 | 00166 #=============================================================================== 00167 */ 00168 int main() 00169 { // Inicialización de variables locales, puertos e interrupciones van aquí !!! 00170 confSysClock(); // Inicialización del Sistema, 00171 Barrido.attach_us(&Barrido_OnInterrupt, Ticker_Rate); // Periodo de la Interrupción por Timer = 1ms (Tcker_Rate=1000) 00172 00173 while (true) // El Lazo del Programa principal está aquí !!! 00174 { 00175 //El Programa principal no hace nada !!! 00176 } 00177 } 00178 /* END main */ 00179 00180 /* 00181 ................................................................................ 00182 : Rutinas de los Vectores de Interrupción 00183 ................................................................................ 00184 */ 00185 void Barrido_OnInterrupt() 00186 { 00187 /* Rutina de Atención a la Interrupción */ 00188 /* Write your code here ... */ 00189 00190 contador++; // Incremeta el contador de mili segundos 00191 if (contador == delay) // Contador es igual al retardo programado? 00192 { 00193 Torreta=Secuencias[i]; // Escribe la secuencia 00194 i++; // Incrementa el índice 00195 if (i >= No_Secuencias) i=0; // Es la última secuencia? 00196 contador =0; // Reinicia contador de retardo 00197 Led_Monitor = !Led_Monitor; // Parpadeo del Led Monitor 00198 } 00199 } 00200 /* END Events */ 00201 00202 00203 /* 00204 ________________________________________________________________________________ 00205 | 00206 | Funciones Prototipo 00207 |_______________________________________________________________________________ 00208 */ 00209 // Las Funciones Prototipo van aquí ! 00210 //void confSysClock(void); // Configure system clock (72MHz HSE clock, 48MHz USB clock) 00211 00212 /* END functions */ 00213 00214 /* END program */ 00215 00216 /*+----------------------------------------------------------------------------- 00217 *+ La documentación va aquí!: 00218 +-------------------------------------------------------------------------------- 00219 | EJERCICIO 00220 | 00221 | 1.- Modificar este programa para: 00222 | a) Agregar más secuencias (mínimo 32). 00223 | b) Realizar el barrido del arreglo de atrás hacia adelante y repetir 00224 | 2.- Modificar el programa para incluir secuencias de sonidos utiliando el 00225 | módulo PWM (Sirena). 00226 | 00227 +-------------------------------------------------------------------------------- 00228 | 00229 | EXAMEN 00230 | 00231 | 1.- Modificar el programa para que despliegue un rango de secuencias 00232 | determinado. 00233 | 2.- Modificar el programa para incluir un menú de selección de secuencias. 00234 | a) Para la Torreta 00235 | b) Para la Sirena 00236 | c) Combinados 00237 | 3.- Volver a realizar éste programa utilizando tambien con apuntadores. 00238 | 00239 | Mucha Suerte! 00240 | 00241 *+----------------------------------------------------------------------------* 00242 *+ 00243 *+ Powered by 00244 *+ 00245 *+ T H E A N T U L I U ' S T E A M R&D Unltd 00246 *+ 00247 *+ Research, Development, Systems, Equipment, Support & Spare Parts. 00248 *+ (C) Copyright 1989-2019, All Rights Reserved 00249 *+ 00250 *+ Welcome to The Beaners Proyect Community! 00251 *+----------------------------------------------------------------------------*/ 00252 00253 /* END Mbed */
Generated on Sat Jul 30 2022 20:17:21 by 1.7.2