Prueba todas las maneras de configurar una pantalla LCD alfanumérica

Dependencies:   FRDM_TSI TextLCD mbed

Committer:
Antulius
Date:
Wed May 08 03:37:52 2019 +0000
Revision:
7:af295ac5f904
Parent:
6:333a2763ad29
Child:
8:39219ab1efd9
Plantilla para la Tarjeta FRDM-KL46Z

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Antulius 6:333a2763ad29 1 /* ###########################################################################
Antulius 6:333a2763ad29 2 ** Archivo : main.c
Antulius 6:333a2763ad29 3 ** Proyecto : FRDM-KL46Z_Plantilla
Antulius 6:333a2763ad29 4 ** Procesador : MKL46Z256VLL4
Antulius 6:333a2763ad29 5 ** Herramienta : Mbed
Antulius 6:333a2763ad29 6 ** Version : Driver 01.01
Antulius 6:333a2763ad29 7 ** Compilador : GNU C Compiler
Antulius 6:333a2763ad29 8 ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0
Antulius 6:333a2763ad29 9 ** Descripción :
Antulius 6:333a2763ad29 10 ** Este proyecto hace...
Antulius 6:333a2763ad29 11 ** This module contains user's application code.
Antulius 6:333a2763ad29 12 ** Componentes : GPIO, Timer, etc .
Antulius 6:333a2763ad29 13 ** Configuraciones : Includes, Stacks y Drivers externos
Antulius 6:333a2763ad29 14 ** Autores :
Antulius 6:333a2763ad29 15 ** ATEAM Development Group:
Antulius 6:333a2763ad29 16 ** - Antulio Morgado Valle
Antulius 6:333a2763ad29 17 **
Antulius 6:333a2763ad29 18 ** Versión : Beta
Antulius 6:333a2763ad29 19 ** Revisión : A
Antulius 6:333a2763ad29 20 ** Release : 0
Antulius 6:333a2763ad29 21 ** Bugs & Fixes :
Antulius 6:333a2763ad29 22 ** Date : 20/10/2019
Antulius 6:333a2763ad29 23 ** Added support for Led_RGB
Antulius 6:333a2763ad29 24 ** 22/09/2018
Antulius 6:333a2763ad29 25 ** Added LCD Menu, Beta version (with bugs)
Antulius 6:333a2763ad29 26 **
Antulius 6:333a2763ad29 27 ** ###########################################################################*/
Antulius 6:333a2763ad29 28 /*
Antulius 6:333a2763ad29 29 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 6:333a2763ad29 30 : Includes
Antulius 6:333a2763ad29 31 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 6:333a2763ad29 32 */
emilmont 0:0f00f07ebde0 33 #include "mbed.h"
emilmont 0:0f00f07ebde0 34
Antulius 6:333a2763ad29 35 /*
Antulius 6:333a2763ad29 36 :...............................................................................
Antulius 6:333a2763ad29 37 : Definiciones
Antulius 6:333a2763ad29 38 :...............................................................................
Antulius 6:333a2763ad29 39 */
Antulius 7:af295ac5f904 40 #define Ticker_Rate 1000 // Periodo de interrupción (us)
Antulius 6:333a2763ad29 41 /*
Antulius 6:333a2763ad29 42 +-------------------------------------------------------------------------------
Antulius 6:333a2763ad29 43 | Configuración de Puertos
Antulius 6:333a2763ad29 44 +-------------------------------------------------------------------------------
Antulius 6:333a2763ad29 45 */
Antulius 7:af295ac5f904 46 Ticker Barrido; // Inicializa la Interrupción por Timer
Antulius 7:af295ac5f904 47 DigitalOut led_monitor(LED1); // Inicializa el LED Monitor
Antulius 7:af295ac5f904 48 PwmOut servo(PTE22); // Inicializa el PWM
Antulius 7:af295ac5f904 49 AnalogIn sensor1 (PTB0); // Inicializa Canal Analógico para sensor 1
Antulius 7:af295ac5f904 50 Serial terminal(USBTX, USBRX); // Inicializa la Comunicación Serial a la PC
Antulius 6:333a2763ad29 51 /*
Antulius 6:333a2763ad29 52 +-------------------------------------------------------------------------------
Antulius 6:333a2763ad29 53 | Variables Globales de Usuario
Antulius 6:333a2763ad29 54 +-------------------------------------------------------------------------------
Antulius 6:333a2763ad29 55 */
Antulius 7:af295ac5f904 56 uint16_t Rate=Ticker_Rate/2; // Velocidad de barrido (500us = 0.5ms)
Antulius 7:af295ac5f904 57 uint16_t counter=250; // Cuenta inicial de 250us
Antulius 6:333a2763ad29 58 /*
Antulius 6:333a2763ad29 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 7:af295ac5f904 60 | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción
Antulius 6:333a2763ad29 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 6:333a2763ad29 62 */
Antulius 7:af295ac5f904 63 void Barrido_OnInterrupt(void);
Antulius 7:af295ac5f904 64 void Blinking_Led(void);
Antulius 6:333a2763ad29 65 /*
Antulius 6:333a2763ad29 66 #===============================================================================
Antulius 6:333a2763ad29 67 |
Antulius 6:333a2763ad29 68 | P R O G R A M A P R I N C I P A L
Antulius 6:333a2763ad29 69 |
Antulius 6:333a2763ad29 70 #===============================================================================
Antulius 6:333a2763ad29 71 */
Antulius 6:333a2763ad29 72 int main()
Antulius 6:333a2763ad29 73 {
Antulius 6:333a2763ad29 74 // Inicialización de variables, puertos e interrupciones
Antulius 7:af295ac5f904 75 Barrido.attach_us(&Barrido_OnInterrupt, Rate); // Le asigna el periodo de barrido de 1ms (Rate=1000)
Antulius 7:af295ac5f904 76
Antulius 7:af295ac5f904 77 terminal.baud(115200); // Se configura la velocidad de transmisión e inicia la comunicación serial.
Antulius 7:af295ac5f904 78 terminal.printf(" System is Wake Up!.\n\r");
Antulius 7:af295ac5f904 79
Antulius 7:af295ac5f904 80 while (true) // El Lazo del Programa principal está aquí !!!
Antulius 6:333a2763ad29 81 {
Antulius 7:af295ac5f904 82 // Blinking_Led(); // Parapadeo del LED por Software
Antulius 7:af295ac5f904 83 servo = sensor1.read();
Antulius 7:af295ac5f904 84 // terminal.printf("Blink \r\n");
emilmont 0:0f00f07ebde0 85 }
Antulius 6:333a2763ad29 86 }
Antulius 7:af295ac5f904 87 /* END main */
Antulius 7:af295ac5f904 88
Antulius 7:af295ac5f904 89 /*
Antulius 7:af295ac5f904 90 ................................................................................
Antulius 7:af295ac5f904 91 : Rutinas de los Vectores de Interrupción
Antulius 7:af295ac5f904 92 ................................................................................
Antulius 7:af295ac5f904 93 */
Antulius 7:af295ac5f904 94 void Barrido_OnInterrupt() // Rutina de Atención al Ticker
Antulius 7:af295ac5f904 95 {
Antulius 7:af295ac5f904 96 counter--; // Aquí va la Rutina de Servicio !
Antulius 7:af295ac5f904 97 if (!counter)
Antulius 7:af295ac5f904 98 {
Antulius 7:af295ac5f904 99 terminal.printf("Counter Finish! \r\n");
Antulius 7:af295ac5f904 100 led_monitor = !led_monitor; // Parapadeo del LED por Interrupción (Toggle the LED)
Antulius 7:af295ac5f904 101 counter = Rate; // Restablece el contador
Antulius 7:af295ac5f904 102 }
Antulius 7:af295ac5f904 103 }
Antulius 7:af295ac5f904 104 /* END Events */
Antulius 7:af295ac5f904 105 /*
Antulius 7:af295ac5f904 106 ________________________________________________________________________________
Antulius 7:af295ac5f904 107 |
Antulius 7:af295ac5f904 108 | Funciones Prototipo
Antulius 7:af295ac5f904 109 |_______________________________________________________________________________
Antulius 7:af295ac5f904 110 */
Antulius 7:af295ac5f904 111 // Las Funciones Prototipo van aquí !
Antulius 7:af295ac5f904 112 void Blinking_Led() // Software Blinking routine for LED
Antulius 7:af295ac5f904 113 {
Antulius 7:af295ac5f904 114 // The on-board LED is connected, via a resistor, to +3.3V (not to GND).
Antulius 7:af295ac5f904 115 // So to turn the LED on or off we have to set it to 0 or 1 respectively
Antulius 7:af295ac5f904 116 led_monitor = 0; // turn the LED on
Antulius 7:af295ac5f904 117 wait_ms(200); // 200 millisecond
Antulius 7:af295ac5f904 118 led_monitor = 1; // turn the LED off
Antulius 7:af295ac5f904 119 wait_ms(1000); // 1000 millisecond
Antulius 7:af295ac5f904 120 }
Antulius 7:af295ac5f904 121
Antulius 7:af295ac5f904 122 /* END Program */
Antulius 7:af295ac5f904 123
Antulius 7:af295ac5f904 124 /* END Mbed */