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
main.cpp@0:3424605ad6b6, 2019-09-13 (annotated)
- Committer:
- Mgiris
- Date:
- Fri Sep 13 21:54:30 2019 +0000
- Revision:
- 0:3424605ad6b6
plantilla;
Who changed what in which revision?
User | Revision | Line number | New 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 */ |