Mbed for ESIMEos / Mbed 2 deprecated plantilla

Dependencies:   mbed

Committer:
Mgiris
Date:
Fri Sep 13 21:54:30 2019 +0000
Revision:
0:3424605ad6b6
plantilla;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mgiris 0:3424605ad6b6 1 /* ###########################################################################
Mgiris 0:3424605ad6b6 2 ** Archivo : main.c
Mgiris 0:3424605ad6b6 3 ** Proyecto : STM32-F103C8_Plantilla
Mgiris 0:3424605ad6b6 4 ** Procesador : STM32F103C8
Mgiris 0:3424605ad6b6 5 ** Herramienta : Mbed
Mgiris 0:3424605ad6b6 6 ** Version : Driver 01.01
Mgiris 0:3424605ad6b6 7 ** Compilador : GNU C Compiler
Mgiris 0:3424605ad6b6 8 ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0
Mgiris 0:3424605ad6b6 9 ** Descripción :
Mgiris 0:3424605ad6b6 10 ** Este proyecto hace...
Mgiris 0:3424605ad6b6 11 ** This module contains user's application code.
Mgiris 0:3424605ad6b6 12 ** Componentes : GPIO, Timer, etc .
Mgiris 0:3424605ad6b6 13 ** Configuraciones : Includes, Stacks y Drivers externos
Mgiris 0:3424605ad6b6 14 ** Autores :
Mgiris 0:3424605ad6b6 15 ** ATEAM Development Group:
Mgiris 0:3424605ad6b6 16 ** - Antulio Morgado Valle
Mgiris 0:3424605ad6b6 17 **
Mgiris 0:3424605ad6b6 18 ** Versión : Beta
Mgiris 0:3424605ad6b6 19 ** Revisión : A
Mgiris 0:3424605ad6b6 20 ** Release : 0
Mgiris 0:3424605ad6b6 21 ** Bugs & Fixes :
Mgiris 0:3424605ad6b6 22 ** Date : 20/10/2019
Mgiris 0:3424605ad6b6 23 ** Added support for Led_RGB
Mgiris 0:3424605ad6b6 24 ** 22/09/2018
Mgiris 0:3424605ad6b6 25 ** Added LCD Menu, Beta version (with bugs)
Mgiris 0:3424605ad6b6 26 **
Mgiris 0:3424605ad6b6 27 ** ###########################################################################*/
Mgiris 0:3424605ad6b6 28 /*
Mgiris 0:3424605ad6b6 29 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Mgiris 0:3424605ad6b6 30 : Includes
Mgiris 0:3424605ad6b6 31 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Mgiris 0:3424605ad6b6 32 */
Mgiris 0:3424605ad6b6 33 #include "mbed.h"
Mgiris 0:3424605ad6b6 34 #include "stm32f103c8t6.h"
Mgiris 0:3424605ad6b6 35 //#include "stm32f10x.h"
Mgiris 0:3424605ad6b6 36 #include "PinNames.h"
Mgiris 0:3424605ad6b6 37 //#include "SysClockConf.h"
Mgiris 0:3424605ad6b6 38 //#include "AnalogIn.h"
Mgiris 0:3424605ad6b6 39 //#include "Led_RGB.h"
Mgiris 0:3424605ad6b6 40 //#include "Serial.h"
Mgiris 0:3424605ad6b6 41 //#include "stdio.h"
Mgiris 0:3424605ad6b6 42 #include <iostream>
Mgiris 0:3424605ad6b6 43 using namespace std;
Mgiris 0:3424605ad6b6 44
Mgiris 0:3424605ad6b6 45 /*
Mgiris 0:3424605ad6b6 46 :...............................................................................
Mgiris 0:3424605ad6b6 47 : Definiciones
Mgiris 0:3424605ad6b6 48 :...............................................................................
Mgiris 0:3424605ad6b6 49 */
Mgiris 0:3424605ad6b6 50 #define on 0 // Estado para boton presionado
Mgiris 0:3424605ad6b6 51 #define off 1 // Estado para boton sin presionar
Mgiris 0:3424605ad6b6 52 #define hold 2 // Estado para boton mantenido
Mgiris 0:3424605ad6b6 53 #define release 3 // Estado para boton liberado
Mgiris 0:3424605ad6b6 54 #define Ticker_Rate 1000 // Periodo de interrupción (us)
Mgiris 0:3424605ad6b6 55 /*
Mgiris 0:3424605ad6b6 56 +-------------------------------------------------------------------------------
Mgiris 0:3424605ad6b6 57 | Configuración de Puertos
Mgiris 0:3424605ad6b6 58 +-------------------------------------------------------------------------------
Mgiris 0:3424605ad6b6 59 */
Mgiris 0:3424605ad6b6 60 //confSysClock(); // Configure system clock (72MHz HSE clock, 48MHz USB clock)
Mgiris 0:3424605ad6b6 61 Ticker TimerInt; // Inicializa la Interrupción por Timer
Mgiris 0:3424605ad6b6 62 DigitalOut led_monitor(LED1); // Inicializa el LED Monitor
Mgiris 0:3424605ad6b6 63 DigitalOut led_testigo(PA_1); // Inicializa el LED Testigo
Mgiris 0:3424605ad6b6 64 Serial terminal(PA_2, PA_3); // Inicializa la Comunicación Serial a la PC
Mgiris 0:3424605ad6b6 65 PwmOut servo(PA_7); // Inicializa el PWM
Mgiris 0:3424605ad6b6 66 AnalogIn sensor1 (PB_0); // Inicializa Canal Analógico para sensor 1
Mgiris 0:3424605ad6b6 67 /*
Mgiris 0:3424605ad6b6 68 +-------------------------------------------------------------------------------
Mgiris 0:3424605ad6b6 69 | Variables Globales de Usuario
Mgiris 0:3424605ad6b6 70 +-------------------------------------------------------------------------------
Mgiris 0:3424605ad6b6 71 */
Mgiris 0:3424605ad6b6 72 uint16_t Rate=Ticker_Rate/2; // Velocidad de barrido (500us = 0.5ms)
Mgiris 0:3424605ad6b6 73 uint16_t counter=250; // Cuenta inicial de 250us
Mgiris 0:3424605ad6b6 74 /* END variables */
Mgiris 0:3424605ad6b6 75
Mgiris 0:3424605ad6b6 76 /*
Mgiris 0:3424605ad6b6 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mgiris 0:3424605ad6b6 78 | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción
Mgiris 0:3424605ad6b6 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mgiris 0:3424605ad6b6 80 */
Mgiris 0:3424605ad6b6 81 // Las Definiciones de Funciones Prototipo
Mgiris 0:3424605ad6b6 82 // y Apuntadores a Vectores de Interrupciones van aquí !
Mgiris 0:3424605ad6b6 83 void TimerInt_OnInterrupt(void);
Mgiris 0:3424605ad6b6 84 void Blinking_Led(void);
Mgiris 0:3424605ad6b6 85 /* END prototypes */
Mgiris 0:3424605ad6b6 86
Mgiris 0:3424605ad6b6 87 /* END definitions */
Mgiris 0:3424605ad6b6 88 /*
Mgiris 0:3424605ad6b6 89 #===============================================================================
Mgiris 0:3424605ad6b6 90 |
Mgiris 0:3424605ad6b6 91 | P R O G R A M A P R I N C I P A L
Mgiris 0:3424605ad6b6 92 |
Mgiris 0:3424605ad6b6 93 #===============================================================================
Mgiris 0:3424605ad6b6 94 */
Mgiris 0:3424605ad6b6 95 int main()
Mgiris 0:3424605ad6b6 96 { // Inicialización de variables, puertos e interrupciones
Mgiris 0:3424605ad6b6 97 confSysClock(); // Inicialización del Sistema, Configure system clock (72MHz HSE clock, 48MHz USB clock)
Mgiris 0:3424605ad6b6 98 TimerInt.attach_us(&TimerInt_OnInterrupt, Ticker_Rate); // Le asigna el periodo de interrupción de 1ms (Ticker_Rate=1000)
Mgiris 0:3424605ad6b6 99
Mgiris 0:3424605ad6b6 100 terminal.baud(115200); // Se configura la velocidad de transmisión e inicia la comunicación serial.
Mgiris 0:3424605ad6b6 101 terminal.printf(" System is Wake Up!.\n\r");
Mgiris 0:3424605ad6b6 102
Mgiris 0:3424605ad6b6 103 while (true) // El Lazo del Programa principal está aquí !!!
Mgiris 0:3424605ad6b6 104 {
Mgiris 0:3424605ad6b6 105 Blinking_Led(); // Parapadeo del LED por Software
Mgiris 0:3424605ad6b6 106 servo = sensor1.read(); //
Mgiris 0:3424605ad6b6 107 terminal.printf("Blink \r\n");
Mgiris 0:3424605ad6b6 108 }
Mgiris 0:3424605ad6b6 109 cout<<"<<<<<<<<<<<<<Instituto Politécnico Nacional>>>>>>>>>>>"<<endl;
Mgiris 0:3424605ad6b6 110 cout<<"<<<<<<<<Escuela Superior de Ingeniería Mecánica y Eléctrica>>>>>>>>><"<<endl;
Mgiris 0:3424605ad6b6 111 cout<<"<<<<<<<<<<<<<Analisis Numérico>>>>>>>>>>>>>><"<<endl;
Mgiris 0:3424605ad6b6 112 cout<<"++++++++++Moya García Iris+++++++++"<<endl;
Mgiris 0:3424605ad6b6 113 }
Mgiris 0:3424605ad6b6 114 /* END main */
Mgiris 0:3424605ad6b6 115
Mgiris 0:3424605ad6b6 116 /*
Mgiris 0:3424605ad6b6 117 ................................................................................
Mgiris 0:3424605ad6b6 118 : Rutinas de los Vectores de Interrupción
Mgiris 0:3424605ad6b6 119 ................................................................................
Mgiris 0:3424605ad6b6 120 */
Mgiris 0:3424605ad6b6 121 // Las Rutinas de Atención a Interrupciones van aquí !
Mgiris 0:3424605ad6b6 122 void TimerInt_OnInterrupt() // Rutina de Atención al Ticker
Mgiris 0:3424605ad6b6 123 {
Mgiris 0:3424605ad6b6 124 counter--; // Aquí va la Rutina de Servicio !
Mgiris 0:3424605ad6b6 125 if (!counter)
Mgiris 0:3424605ad6b6 126 {
Mgiris 0:3424605ad6b6 127 terminal.printf("Counter Finish! \r\n");
Mgiris 0:3424605ad6b6 128 led_monitor = !led_monitor; // Parapadeo del LED por Interrupción (LED Toggled)
Mgiris 0:3424605ad6b6 129 counter = Rate; // Restablece el contador, Le asigna el periodo de 0.5ms (Rate=500)
Mgiris 0:3424605ad6b6 130 }
Mgiris 0:3424605ad6b6 131 }
Mgiris 0:3424605ad6b6 132 /* END Events */
Mgiris 0:3424605ad6b6 133 /*
Mgiris 0:3424605ad6b6 134 ________________________________________________________________________________
Mgiris 0:3424605ad6b6 135 |
Mgiris 0:3424605ad6b6 136 | Funciones Prototipo
Mgiris 0:3424605ad6b6 137 |_______________________________________________________________________________
Mgiris 0:3424605ad6b6 138 */
Mgiris 0:3424605ad6b6 139 // Las Funciones Prototipo van aquí !
Mgiris 0:3424605ad6b6 140 void Blinking_Led() // Software Blinking routine for LED
Mgiris 0:3424605ad6b6 141 {
Mgiris 0:3424605ad6b6 142 // The on-board LED is connected, via a resistor, to +3.3V (not to GND).
Mgiris 0:3424605ad6b6 143 // So to turn the LED on or off we have to set it to 0 or 1 respectively
Mgiris 0:3424605ad6b6 144 led_testigo = 1; // turn the LED on (using Positive Logic)
Mgiris 0:3424605ad6b6 145 wait_ms(200); // 200 millisecond
Mgiris 0:3424605ad6b6 146 led_testigo = 0; // turn the LED off (using Positive Logic)
Mgiris 0:3424605ad6b6 147 wait_ms(1000); // 1000 millisecond
Mgiris 0:3424605ad6b6 148 }
Mgiris 0:3424605ad6b6 149 /* END functions */
Mgiris 0:3424605ad6b6 150
Mgiris 0:3424605ad6b6 151 /* END program */
Mgiris 0:3424605ad6b6 152
Mgiris 0:3424605ad6b6 153 /*+-----------------------------------------------------------------------------
Mgiris 0:3424605ad6b6 154 *+ Conexión al Led Testigo:
Mgiris 0:3424605ad6b6 155 *+
Mgiris 0:3424605ad6b6 156 *+ Los leds se pueden conectar a cualquier pin que se declare como DigitalOut.
Mgiris 0:3424605ad6b6 157 *+ El dispositivo puede drenar hasta 20ma por todas sus salidas a un voltaje de
Mgiris 0:3424605ad6b6 158 *+ 3.3V, pero se recomienda no exceder de 1mA por salida.
Mgiris 0:3424605ad6b6 159 *+ Esto se logra poniendo una resistencia limitadora de mínimo 330 Ohms.
Mgiris 0:3424605ad6b6 160 *+
Mgiris 0:3424605ad6b6 161 *+ 3.3V o 5V
Mgiris 0:3424605ad6b6 162 *+ O
Mgiris 0:3424605ad6b6 163 *+ |
Mgiris 0:3424605ad6b6 164 *+ |
Mgiris 0:3424605ad6b6 165 *+ /
Mgiris 0:3424605ad6b6 166 *+ \ 1K
Mgiris 0:3424605ad6b6 167 *+ /
Mgiris 0:3424605ad6b6 168 *+ \ UTILIZANDO LÓGICA NEGATIVA
Mgiris 0:3424605ad6b6 169 *+ |
Mgiris 0:3424605ad6b6 170 *+ ___|___
Mgiris 0:3424605ad6b6 171 *+ \ /
Mgiris 0:3424605ad6b6 172 *+ \ /
Mgiris 0:3424605ad6b6 173 *+ \ /
Mgiris 0:3424605ad6b6 174 *+ __\/__
Mgiris 0:3424605ad6b6 175 *+ |
Mgiris 0:3424605ad6b6 176 *+ |__________________________ PIN (Digital Out)
Mgiris 0:3424605ad6b6 177 *+
Mgiris 0:3424605ad6b6 178 *+
Mgiris 0:3424605ad6b6 179 *+
Mgiris 0:3424605ad6b6 180 *+
Mgiris 0:3424605ad6b6 181 *+ 1K
Mgiris 0:3424605ad6b6 182 *+
Mgiris 0:3424605ad6b6 183 *+ _________/\ /\ /\ _____ PIN (Digital Out)
Mgiris 0:3424605ad6b6 184 *+ | \/ \/ \/
Mgiris 0:3424605ad6b6 185 *+ |
Mgiris 0:3424605ad6b6 186 *+ |
Mgiris 0:3424605ad6b6 187 *+ ___|___
Mgiris 0:3424605ad6b6 188 *+ \ /
Mgiris 0:3424605ad6b6 189 *+ \ /
Mgiris 0:3424605ad6b6 190 *+ \ / UTILIZANDO LÓGICA POSITIVA
Mgiris 0:3424605ad6b6 191 *+ __\/__
Mgiris 0:3424605ad6b6 192 *+ |
Mgiris 0:3424605ad6b6 193 *+ |
Mgiris 0:3424605ad6b6 194 *+ |
Mgiris 0:3424605ad6b6 195 *+ ___|___
Mgiris 0:3424605ad6b6 196 *+ _____
Mgiris 0:3424605ad6b6 197 *+ ___
Mgiris 0:3424605ad6b6 198 *+ _
Mgiris 0:3424605ad6b6 199 *+
Mgiris 0:3424605ad6b6 200 *+ GND
Mgiris 0:3424605ad6b6 201 *+
Mgiris 0:3424605ad6b6 202 *+----------------------------------------------------------------------------*
Mgiris 0:3424605ad6b6 203 *+
Mgiris 0:3424605ad6b6 204 *+ Powered by
Mgiris 0:3424605ad6b6 205 *+
Mgiris 0:3424605ad6b6 206 *+ T H E A N T U L I U ' S T E A M R&D Unltd
Mgiris 0:3424605ad6b6 207 *+
Mgiris 0:3424605ad6b6 208 *+ Research, Development, Systems, Equipment, Support & Spare Parts.
Mgiris 0:3424605ad6b6 209 *+ (C) Copyright 1989-2019, All Rights Reserved
Mgiris 0:3424605ad6b6 210 *+
Mgiris 0:3424605ad6b6 211 *+ Welcome to The Beaners Proyect Community!
Mgiris 0:3424605ad6b6 212 *+----------------------------------------------------------------------------*/
Mgiris 0:3424605ad6b6 213
Mgiris 0:3424605ad6b6 214 /* END Mbed */