Programa de torreta
Dependencies: mbed
main.cpp
- Committer:
- Antulius
- Date:
- 2019-09-20
- Revision:
- 0:583269628e14
File content as of revision 0:583269628e14:
/* ############################################################################# ** Archivo : main.c ** Proyecto : STM32-F103C8_Torreta ** Procesador : STM32F103C8T6 ** Plataforma : Blue Pill ** Herramienta : Mbed Compiler ** Version : Driver 01.01 ** Compilador : GNU C Compiler ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0 ** Descripción : ** Este proyecto hace... ** This module contains user's application code. ** Componentes : GPIO, Timer, etc . ** Configuraciones : Includes, Stacks y Drivers externos ** Autores : ** ATEAM Development Group: ** - Antulio Morgado Valle ** ** Versión : Beta ** Revisión : A ** Release : 0 ** Bugs & Fixes : ** Date : 20/10/2019 ** Added support for Led_RGB ** 22/09/2018 ** Added LCD Menu, Beta version (with bugs) ** ** ###########################################################################*/ /* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Includes :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */ #include "stm32f103c8t6.h" #include "mbed.h" /* :............................................................................... : Definiciones :............................................................................... */ #define Ticker_Rate 1000 // Periodo de interrupción (us) /* +------------------------------------------------------------------------------- | Configuración de Puertos +------------------------------------------------------------------------------- */ Ticker Barrido; // Interrupción del Timer //BusOut Torreta(D0,D1,D2,D3,D4,D5,D6,D7); // Utilizando las definiciones Arduino BusOut Torreta(PB_4,PB_3,PA_15,PA_12,PA_11,PA_10,PA_9,PA_8); // DigitalOut Led_Monitor (LED1); // Led monitor de la Tarjeta STM32F103C8 //PwmOut Buzzer(PB_1); // PB1_TIM3_CH4N /* +------------------------------------------------------------------------------- | Variables Globales de Usuario +------------------------------------------------------------------------------- */ uint8_t Secuencias[]={ 0x03, 0x03, 0xC0, 0xC0, 0x03, 0x03, 0xC0, 0xC0, // 8 0x03, 0x03, 0xC0, 0xC0, 0x03, 0x03, 0xC0, 0xC0, // 16 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, // 24 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, // 32 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0xC0, // 40 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00, // 48 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00, // 56 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x00, // 64 0x07, 0x08, 0x13, 0x20, 0xC0, 0x20, 0xC8, 0x04, // 72 0x07, 0x08, 0x13, 0x20, 0xC0, 0x20, 0xC8, 0x04, // 80 0x07, 0x0B, 0xD0, 0xE0, 0x07, 0x0B, 0xD0, 0xE0, // 88 0x07, 0x0B, 0xD0, 0xE0, 0x07, 0x0B, 0xD0, 0xE0, // 96 0x23, 0x13, 0xC8, 0xC4, 0x23, 0x13, 0xC8, 0xC4, // 104 0x23, 0x13, 0xC8, 0xC4, 0x23, 0x13, 0xC8, 0xC4, // 112 0x23, 0x10, 0xC8, 0x04, 0x23, 0x10, 0xC8, 0x04, // 120 0x23, 0x10, 0xC8, 0x04, 0x23, 0x10, 0xC8, 0x04, // 128 0x07, 0x43, 0xD0, 0xC4, 0x07, 0x43, 0xD0, 0xC4, // 136 0x07, 0x43, 0xD0, 0xC4, 0x07, 0x43, 0xD0, 0xC4, // 144 0x03, 0x04, 0x08, 0x10, 0x20, 0xC0, 0x20, 0x10, // 152 0x08, 0x04, 0x03, 0x04, 0x08, 0x10, 0x20, 0xC0, // 160 0x20, 0x10, 0x08, 0x04, 0x03, 0x04, 0x08, 0x10, // 168 0x20, 0xC0, 0x20, 0x10, 0x08, 0x04, 0x03, 0x04, // 176 0x08, 0x10, 0x20, 0xC0, 0x20, 0x10, 0x08, 0x04, // 184 0x03, 0x18, 0xC0, 0x3C, 0x03, 0x24, 0xC0, 0x3C, // 192 0x04, 0x08, 0x10, 0x20, 0x04, 0x08, 0x10, 0x20, // 200 0x04, 0x08, 0x10, 0x20, 0x04, 0x08, 0x10, 0x20, // 208 0x20, 0x10, 0x08, 0x04, 0x20, 0x10, 0x08, 0x04, // 216 0x20, 0x10, 0x08, 0x04, 0x20, 0x10, 0x08, 0x04, // 224 0x03, 0x04, 0x03, 0x08, 0x03, 0x10, 0x03, 0x20, // 232 0x03, 0x04, 0x03, 0x08, 0x03, 0x10, 0x03, 0x20, // 240 0xC0, 0x20, 0xC0, 0x10, 0xC0, 0x08, 0xC0, 0x04, // 248 0xC0, 0x20, 0xC0, 0x10, 0xC0, 0x08, 0xC0, 0x04, // 256 0x04, 0x08, 0x10, 0x20, 0x20, 0x10, 0x08, 0x04, // 264 0x04, 0x08, 0x10, 0x20, 0x20, 0x10, 0x08, 0x04, // 272 0x88, 0x44, 0x11, 0x22, 0x88, 0x44, 0x22, 0x11, // 280 0x88, 0x44, 0x11, 0x22, 0x88, 0x44, 0x22, 0x11, // 288 0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88, // 296 0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88, // 304 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, // 312 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, 0x18, 0x24, // 320 0x18, 0x81, 0x3C, 0xC3, 0x24, 0x42, 0x0F, 0xF0, // 328 0x18, 0x81, 0x3C, 0xC3, 0x24, 0x42, 0x0F, 0xF0, // 336 0x18, 0xC3, 0x24, 0xC3, 0x18, 0xC3, 0x24, 0xC3, // 344 0x18, 0xC3, 0x24, 0xC3, 0x18, 0xC3, 0x24, 0xC3, // 352 0x20, 0x30, 0x10, 0x18, 0x08, 0x0C, 0x04, 0x03, // 360 0x04, 0x0C, 0x08, 0x18, 0x10, 0x30, 0x20, 0xC0, // 368 0x20, 0x30, 0x10, 0x18, 0x08, 0x0C, 0x04, 0x03, // 376 0x04, 0x0C, 0x08, 0x18, 0x10, 0x30, 0x20, 0xC0, // 384 0x81, 0x81, 0x7E, 0x7E, 0x81, 0x81, 0x7E, 0x7E, // 392 0x81, 0x7E, 0x81, 0x7E, 0x81, 0x7E, 0x7E, 0x81, // 400 0x81, 0x00, 0x81, 0x00, 0x7E, 0x00, 0x7E, 0x00, // 408 0x81, 0x00, 0x81, 0x00, 0x7E, 0x00, 0x7E, 0x00, // 416 0x80, 0x00, 0x01, 0x00, 0x7E, 0x00, 0x7E, 0x00, // 424 0x80, 0x00, 0x01, 0x00, 0x7E, 0x00, 0x7E, 0x00, // 432 0x33, 0xCC, 0x33, 0xCC, 0x33, 0xCC, 0x33, 0xCC, // 440 0x03, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0xC0, 0x3C, // 448 0x03, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0xC0, 0x3C, // 456 0x3C, 0x00, 0xC3, 0x00, 0x3C, 0x00, 0xC3, 0x00, // 464 0x3C, 0x00, 0xC3, 0x00, 0x3C, 0x00, 0xC3, 0x00, // 472 0x3C, 0x3C, 0x00, 0x00, 0x3C, 0x3C, 0x00, 0x00, // 480 0x3C, 0x3C, 0x00, 0x00, 0x3C, 0x3C, 0x00, 0x00, // 488 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, // 496 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, // 504 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, // 512 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, 0xC3, 0x3C, // 520 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C, // 528 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C, // 536 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C, // 544 0xC0, 0x3C, 0x03, 0x3C, 0xC0, 0x3C, 0x03, 0x3C, // 552 0x00, 0x28, 0x00, 0x14, 0x00, 0x28, 0x00, 0x14, // 560 0x00, 0x28, 0x00, 0x14, 0x00, 0x28, 0x00, 0x14, // 568 0xC0, 0xF0, 0x30, 0x0C, 0x0F, 0xC0, 0xF0, 0x30, // 576 0x0C, 0x0F, 0xC0, 0xF0, 0x30, 0x0C, 0x0F, 0x03, // 584 0x03, 0x0F, 0x0C, 0x30, 0xF0, 0xC0, 0x0F, 0x0C, // 592 0x30, 0xF0, 0xC0, 0x0F, 0x0C, 0x30, 0xF0, 0xC0, // 600 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03, // 608 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03, // 616 0x00, 0x03, 0x0F, 0x0C, 0x3C, 0x30, 0xF0, 0xC0, // 624 0x00, 0x03, 0x0F, 0x0C, 0x3C, 0x30, 0xF0, 0xC0, // 632 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03, // 640 0x00, 0xC0, 0xF0, 0x30, 0x3C, 0x0C, 0x0F, 0x03, // 648 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xF0, // 656 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xF0, // 674 0x00, 0xF0, 0x00, 0x0F, 0x00, 0xF0, 0x00, 0x0F, // 682 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF }; uint16_t No_Secuencias=689; // Número de secuencias a desplegar uint16_t i=0; // Indice para las secuencias uint16_t delay=250; // Tiempo de retardo entre secuencias (en ms) uint16_t contador=0; // Contador de mili segundos /* END Global Variables */ /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ void Barrido_OnInterrupt(void); /* #=============================================================================== | | P R O G R A M A P R I N C I P A L | #=============================================================================== */ int main() { // Inicialización de variables locales, puertos e interrupciones van aquí !!! confSysClock(); // Inicialización del Sistema, Barrido.attach_us(&Barrido_OnInterrupt, Ticker_Rate); // Periodo de la Interrupción por Timer = 1ms (Tcker_Rate=1000) while (true) // El Lazo del Programa principal está aquí !!! { //El Programa principal no hace nada !!! } } /* END main */ /* ................................................................................ : Rutinas de los Vectores de Interrupción ................................................................................ */ void Barrido_OnInterrupt() { /* Rutina de Atención a la Interrupción */ /* Write your code here ... */ contador++; // Incremeta el contador de mili segundos if (contador == delay) // Contador es igual al retardo programado? { Torreta=Secuencias[i]; // Escribe la secuencia i++; // Incrementa el índice if (i >= No_Secuencias) i=0; // Es la última secuencia? contador =0; // Reinicia contador de retardo Led_Monitor = !Led_Monitor; // Parpadeo del Led Monitor } } /* END Events */ /* ________________________________________________________________________________ | | Funciones Prototipo |_______________________________________________________________________________ */ // Las Funciones Prototipo van aquí ! //void confSysClock(void); // Configure system clock (72MHz HSE clock, 48MHz USB clock) /* END functions */ /* END program */ /*+----------------------------------------------------------------------------- *+ La documentación va aquí!: +-------------------------------------------------------------------------------- | EJERCICIO | | 1.- Modificar este programa para: | a) Agregar más secuencias (mínimo 32). | b) Realizar el barrido del arreglo de atrás hacia adelante y repetir | 2.- Modificar el programa para incluir secuencias de sonidos utiliando el | módulo PWM (Sirena). | +-------------------------------------------------------------------------------- | | EXAMEN | | 1.- Modificar el programa para que despliegue un rango de secuencias | determinado. | 2.- Modificar el programa para incluir un menú de selección de secuencias. | a) Para la Torreta | b) Para la Sirena | c) Combinados | 3.- Volver a realizar éste programa utilizando tambien con apuntadores. | | Mucha Suerte! | *+----------------------------------------------------------------------------* *+ *+ Powered by *+ *+ T H E A N T U L I U ' S T E A M R&D Unltd *+ *+ Research, Development, Systems, Equipment, Support & Spare Parts. *+ (C) Copyright 1989-2019, All Rights Reserved *+ *+ Welcome to The Beaners Proyect Community! *+----------------------------------------------------------------------------*/ /* END Mbed */