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
Diff: main.cpp
- Revision:
- 5:e2fe0990d8ad
- Parent:
- 4:e1e547c34929
- Child:
- 6:f47832fe0b07
diff -r e1e547c34929 -r e2fe0990d8ad main.cpp
--- a/main.cpp Wed Jun 17 20:25:52 2020 +0000
+++ b/main.cpp Sun Jun 21 02:31:47 2020 +0000
@@ -1,6 +1,6 @@
/* #############################################################################
** Archivo : main.c
-** Proyecto : STM32F103C8_Plantilla
+** Proyecto : STM32F103C8_Plantilla_Enhenced
** Procesador : STM32F103C8T6
** Plataforma : Blue Pill
** Herramienta : Mbed
@@ -33,24 +33,32 @@
*/
#include "stm32f103c8t6.h"
#include "mbed.h"
+#include "Serial.h"
//#include "AnalogIn.h"
//#include "Led_RGB.h"
-#include "Serial.h"
-//#include "stdio.h"
+//#include <stdio.h>
/*
:...............................................................................
: Definiciones
:...............................................................................
*/
-#define on 0 // Estado para boton presionado
-#define off 1 // Estado para boton sin presionar
-#define hold 2 // Estado para boton mantenido
-#define release 3 // Estado para boton liberado
-#define FALSE 0 // Estado FALSO
-#define TRUE 1 // Estado VERDADERO
-#define Ticker_Rate 1000 // Periodo de interrupción (us)
-#define Baud_Rate 115200 // Velocidad de Transmisión (Bauds)
+#define Led_on 0 // Estado para el Led Encendido
+#define Led_off 1 // Estado para el Led Apagado
+#define Buzz_On 1 // Estado para Buzzer Encendido
+#define Buzz_Off 0 // Estado para Buzzer Apagado
+#define on 0 // Estado para boton presionado
+#define off 1 // Estado para boton sin presionar
+#define hold 2 // Estado para boton mantenido
+#define release 3 // Estado para boton liberado
+#define FALSE 0 // Estado FALSO
+#define TRUE 1 // Estado VERDADERO
+#define Ticker_Rate 1000 // Periodo de interrupción (us)
+#define Baud_Rate 115200 // Velocidad de Transmisión (Bauds)
+ // Velocidades Permitidas:
+ // 300, 600, 1200, 2400, 4800, 9600,
+ // 14400, 19600, 28800, 38400, 57600
+ // 115200, 230400
/*
+-------------------------------------------------------------------------------
| Configuración de Puertos
@@ -60,8 +68,9 @@
Ticker TimerInt; // Inicializa la Interrupción por Timer
DigitalOut led_monitor(LED1); // Inicializa el LED Monitor (Interno)
DigitalOut led_testigo(PB_1); // Inicializa el LED Testigo (Externo)
-PwmOut servo(PA_7); // Inicializa el PWM
-AnalogIn sensor1 (PB_0); // Inicializa Canal Analógico para sensor 1
+PwmOut pwm1(PA_7); // Inicializa el PWM para el LED Externo
+PwmOut buzzer(PB_1); // Inicializa el PWM para el Buzzer Externo
+AnalogIn pot1(PB_0); // Inicializa Canal Analógico para Potenciometro 1
Serial terminal(PA_2, PA_3); // Inicializa la Comunicación Serial a la PC
/*
+-------------------------------------------------------------------------------
@@ -81,6 +90,8 @@
// y Apuntadores a Vectores de Interrupciones van aquí !
void TimerInt_OnInterrupt(void);
void Blinking_Led(void);
+void Clear_Screen(void);
+void Buzzer_Beep(void);
/* END prototypes */
/* END definitions */
@@ -95,16 +106,17 @@
{ // Inicialización de variables, puertos e interrupciones
confSysClock(); // Inicialización del Sistema, Configure system clock (72MHz HSE clock, 48MHz USB clock)
TimerInt.attach_us(&TimerInt_OnInterrupt, Ticker_Rate); // Le asigna el periodo de interrupción de 1ms (Ticker_Rate=1000)
-
terminal.baud(Baud_Rate); // Se configura la velocidad de transmisión e inicia la comunicación serial.
-terminal.printf(" System is Wake Up!.\n\r");
-
- while (true) // El Lazo del Programa principal está aquí !!!
- {
- Blinking_Led(); // Parapadeo del LED por Software
- servo = sensor1.read(); // Lee el Potenciometro y mueve el Servo
- terminal.printf("Blink \r\n");
- }
+Clear_Screen(); // Limpia la pantalla de la Terminal
+terminal.printf("The System is Wake Up!.\n\r");
+Buzzer_Beep(); // Prueba el Buzzer
+
+ while (true) // El Lazo del Programa principal está aquí !!!
+ {
+ Blinking_Led(); // Parapadeo del LED por Software
+ pwm1 = pot1.read(); // Lee el Potenciometro y mueve el Servo
+ terminal.printf("Blink \r\n");
+ }
}
/* END main */
@@ -114,6 +126,22 @@
................................................................................
*/
// Las Rutinas de Atención a Interrupciones van aquí !
+/*
+** ===================================================================
+** Vector : TimerInt_OnInterrupt()
+*/
+/*!
+** @brief
+** Called after Ticker is done, [Interrupt service/event]
+** and it is enabled:
+** TimerInt.attach_us(&TimerInt_OnInterrupt, Ticker_Rate);
+** the event is enabled and will be executed every [Ticker_Rate]
+** @param
+** UserDataPtr - Pointer to the user or
+** RTOS specific data. The pointer is passed
+** as the parameter of Init method.
+*/
+/* ===================================================================*/
void TimerInt_OnInterrupt() // Rutina de Atención al Ticker
{
counter--; // Aquí va la Rutina de Servicio !
@@ -132,6 +160,11 @@
|_______________________________________________________________________________
*/
// Las Funciones Prototipo van aquí !
+/*
+|--------------------------------------------------
+| Función Blinking_Led()
+|--------------------------------------------------
+*/
void Blinking_Led() // Software Blinking routine for LED
{
// The on-board LED is connected, via a resistor, to +3.3V (not to GND).
@@ -141,6 +174,38 @@
led_testigo = 0; // turn the LED off (using Positive Logic)
wait_ms(1000); // 1000 millisecond
}
+/*
+|--------------------------------------------------
+| Función clear_screen()
+|--------------------------------------------------
+*/
+void Clear_Screen()
+{
+ // ANSI Terminal Commands
+ terminal.printf("\x1B[2J"); // secuencia de Escape \e1B[2J
+ terminal.printf("\x1B[H"); // secuencia de Escape \e1B[H
+}
+/*
+|--------------------------------------------------
+| Función Buzzer_Beep()
+|--------------------------------------------------
+*/
+void Buzzer_Beep() // Software routine for Buzzer Beep
+{
+ terminal.printf("Testing Buzzer... \n\r");
+ buzzer = Buzz_On;
+ wait_ms(750);
+ buzzer = Buzz_Off;
+ wait_ms(125);
+ buzzer = Buzz_On;
+ wait_ms(250);
+ buzzer = Buzz_Off;
+ wait_ms(125);
+ buzzer = Buzz_On;
+ wait_ms(500);
+ buzzer = Buzz_Off;
+ terminal.printf("Buzzer OK ! \n\r");
+}
/* END functions */
/* END program */