Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Revision 1:af2f0021bf9b, committed 2019-10-30
- Comitter:
- micro_IPN_JLL
- Date:
- Wed Oct 30 21:13:30 2019 +0000
- Parent:
- 0:583269628e14
- Commit message:
- TECLADO DISPLAY
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 583269628e14 -r af2f0021bf9b main.cpp
--- a/main.cpp Fri Sep 20 20:46:16 2019 +0000
+++ b/main.cpp Wed Oct 30 21:13:30 2019 +0000
@@ -1,253 +1,76 @@
-/* #############################################################################
-** 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
+
+BusOut display(PB_4,PB_3,PA_15,PA_12,PA_11,PA_10,PA_9,PA_8);
+BusOut multiplexaje(PA_3,PA_2,PA_1,PA_0);
+BusIn entrada(PB_0,PB_1,PB_10,PB_11);
+BusOut salida(PB_6,PB_7,PB_8,PB_9);
+
- 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
+uint8_t Numero[4][4]=
+{
+ {0x42,0xB6,0xBC,0xFA},
+ {0xD8,0xEC,0xEE,0xCE},
+ {0x38,0xFE,0xFC,0x86},
+ {0x80,0x7E,0xFA,0x9E}
+};
+
+uint8_t catodo[]=
+{
+ //0b0001,0b0010,0b0100,0b1000
+ 0x01,0x02,0x04,0x08
+};
+
+uint8_t fila[]=
+{
+ 0x01,0x02,0x04,0x08
+};
- 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 !!!
+uint8_t columna[]=
+{
+ //0b0001,0b0010,0b0100,0b1000
+ 0x01,0x02,0x04,0x08
+};
+
+void Encender(int C,int F);
+
+int main()
+{
+
+ while(1)
+ {
+ for(int i=0; i<4; i++)
+ {
+ salida=columna[i];
+
+ if(entrada!=0)
+ {
+ if(entrada==fila[0])
+ {
+ Encender(i,0);
+ }else if(entrada==fila[1])
+ {
+ Encender(i,1);
+ }else if(entrada==fila[2])
+ {
+ Encender(i,2);
+ }else if(entrada==fila[3])
+ {
+ Encender(i,3);
+ }
+ }
+ }
}
}
-/* 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 */
\ No newline at end of file
+void Encender(int C,int F)
+{
+ multiplexaje=catodo[0];
+
+ display=Numero[F][C];
+ wait_ms(200);
+
+ multiplexaje=0x00;
+ display=0x00;
+}
\ No newline at end of file