Prueba todas las maneras de configurar una pantalla LCD alfanumérica
Dependencies: FRDM_TSI TextLCD mbed
main.cpp@7:af295ac5f904, 2019-05-08 (annotated)
- 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?
User | Revision | Line number | New 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 */ |