Plantilla para la Tarjeta FRDM-KL46Z

Dependencies:   mbed

Revision:
7:af295ac5f904
Parent:
6:333a2763ad29
Child:
8:6e3526d25aeb
--- a/main.cpp	Tue Apr 02 19:26:46 2019 +0000
+++ b/main.cpp	Wed May 08 03:37:52 2019 +0000
@@ -31,41 +31,37 @@
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 */
 #include "mbed.h"
-#include "TSISensor.h"
 
 /*
 :...............................................................................
 :  Definiciones
 :...............................................................................
 */
-
+#define Ticker_Rate     1000            // Periodo de interrupción (us)
 /*
 +-------------------------------------------------------------------------------
 |  Configuración de Puertos 
 +-------------------------------------------------------------------------------
 */
-
+Ticker      Barrido;                // Inicializa la Interrupción por Timer
+DigitalOut  led_monitor(LED1);      // Inicializa el LED Monitor
+PwmOut      servo(PTE22);           // Inicializa el PWM
+AnalogIn    sensor1 (PTB0);         // Inicializa Canal Analógico para sensor 1
+Serial      terminal(USBTX, USBRX); // Inicializa la Comunicación Serial a la PC
 /*
 +-------------------------------------------------------------------------------
 |  Variables Globales de Usuario 
 +-------------------------------------------------------------------------------
 */
-
+uint16_t Rate=Ticker_Rate/2;        // Velocidad de barrido (500us = 0.5ms)
+uint16_t counter=250;               // Cuenta inicial de 250us
 /*
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-|  Definición de Vectores de Interrupción
+|  Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 */
-
-/* END Events */        // Rutinas de Atención a Interrupciones
-
-/*
-________________________________________________________________________________
-|
-|  Funciones Prototipo
-|_______________________________________________________________________________
-*/
-                // Las Funciones Prototipo van aquí !
+void Barrido_OnInterrupt(void);  
+void Blinking_Led(void); 
 /*
 #===============================================================================
 |
@@ -76,8 +72,53 @@
 int main()
 {
                 // Inicialización de variables, puertos e interrupciones
-    while (true) 
+Barrido.attach_us(&Barrido_OnInterrupt, Rate);   // Le asigna el periodo de barrido de 1ms (Rate=1000)
+
+terminal.baud(115200);      // 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í !!!
     {
-                                //El Programa principal está aquí !!!
+//        Blinking_Led();             // Parapadeo del LED por Software
+        servo = sensor1.read(); 
+//        terminal.printf("Blink \r\n");                           
     }
 }
+/* END main */
+
+/*
+................................................................................
+:  Rutinas de los Vectores de Interrupción
+................................................................................
+*/
+void Barrido_OnInterrupt()          // Rutina de Atención al Ticker
+{
+    counter--;                      // Aquí va la Rutina de Servicio !
+    if (!counter)
+    {
+        terminal.printf("Counter Finish! \r\n");
+        led_monitor = !led_monitor; // Parapadeo del LED por Interrupción (Toggle the LED)
+        counter = Rate;             // Restablece el contador
+    } 
+}
+/* END Events */   
+/*
+________________________________________________________________________________
+|
+|  Funciones Prototipo
+|_______________________________________________________________________________
+*/
+                // Las Funciones Prototipo van aquí !
+void Blinking_Led()             // Software Blinking routine for LED 
+{
+        // The on-board LED is connected, via a resistor, to +3.3V (not to GND). 
+        // So to turn the LED on or off we have to set it to 0 or 1 respectively
+        led_monitor = 0;        // turn the LED on
+        wait_ms(200);           // 200 millisecond
+        led_monitor = 1;        // turn the LED off
+        wait_ms(1000);          // 1000 millisecond
+}
+
+/* END Program */
+
+/* END Mbed */ 
\ No newline at end of file