6CM8 / Mbed 2 deprecated FRDM-KL46Z_Adivina

Dependencies:   mbed

Committer:
fcalzadas
Date:
Thu Mar 28 19:46:59 2019 +0000
Revision:
0:a5437f3e13aa
Version Original

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fcalzadas 0:a5437f3e13aa 1 /*******************************************************************************
fcalzadas 0:a5437f3e13aa 2 *
fcalzadas 0:a5437f3e13aa 3 * ARCHIVO : main.c
fcalzadas 0:a5437f3e13aa 4 *
fcalzadas 0:a5437f3e13aa 5 * PROYECTO : FRDM-KL46Z_Adivina
fcalzadas 0:a5437f3e13aa 6 *
fcalzadas 0:a5437f3e13aa 7 * PROCESADOR : MKL46Z256VLL4
fcalzadas 0:a5437f3e13aa 8 *
fcalzadas 0:a5437f3e13aa 9 * DISPOSITIVO : FRDM-KL46Z
fcalzadas 0:a5437f3e13aa 10 *
fcalzadas 0:a5437f3e13aa 11 * HERRAMIENTA : Mbed
fcalzadas 0:a5437f3e13aa 12 *
fcalzadas 0:a5437f3e13aa 13 * Version : Driver 01.01
fcalzadas 0:a5437f3e13aa 14 *
fcalzadas 0:a5437f3e13aa 15 * Compilador : GNU C Compiler
fcalzadas 0:a5437f3e13aa 16 *
fcalzadas 0:a5437f3e13aa 17 * DESCRIPCION : El programa principal guarda un número secreto y lo compara
fcalzadas 0:a5437f3e13aa 18 * contra otro leído del teclado. Tiene n intentos para adivinar
fcalzadas 0:a5437f3e13aa 19 * el numero secreto.
fcalzadas 0:a5437f3e13aa 20 * Este programa recibe un dato desde la terminal y lo compara
fcalzadas 0:a5437f3e13aa 21 * con datos subsecuentes enviados por la terminal para decidir
fcalzadas 0:a5437f3e13aa 22 * si el número es menor, igual o mayor al digitado.
fcalzadas 0:a5437f3e13aa 23 *
fcalzadas 0:a5437f3e13aa 24 * VERSION : 1.0
fcalzadas 0:a5437f3e13aa 25 *
fcalzadas 0:a5437f3e13aa 26 * REVISION : A
fcalzadas 0:a5437f3e13aa 27 *
fcalzadas 0:a5437f3e13aa 28 * RELEASE : 0
fcalzadas 0:a5437f3e13aa 29 *
fcalzadas 0:a5437f3e13aa 30 * BUGS & FIXES :
fcalzadas 0:a5437f3e13aa 31 *
fcalzadas 0:a5437f3e13aa 32 * Date :
fcalzadas 0:a5437f3e13aa 33 *
fcalzadas 0:a5437f3e13aa 34 * AUTOR(ES): Antulio Morgado Valle
fcalzadas 0:a5437f3e13aa 35 *
fcalzadas 0:a5437f3e13aa 36 * FECHA: 10/20/2014
fcalzadas 0:a5437f3e13aa 37 *
fcalzadas 0:a5437f3e13aa 38 *******************************************************************************/
fcalzadas 0:a5437f3e13aa 39 #include "mbed.h"
fcalzadas 0:a5437f3e13aa 40 #include "Serial.h"
fcalzadas 0:a5437f3e13aa 41 DigitalOut verde (LED1);
fcalzadas 0:a5437f3e13aa 42 DigitalOut rojo(LED2);
fcalzadas 0:a5437f3e13aa 43 Serial pc_serial(USBTX, USBRX);
fcalzadas 0:a5437f3e13aa 44 //Serial pc_serial(PTE22, PTE23);
fcalzadas 0:a5437f3e13aa 45
fcalzadas 0:a5437f3e13aa 46 #define on 0
fcalzadas 0:a5437f3e13aa 47 #define off 1
fcalzadas 0:a5437f3e13aa 48
fcalzadas 0:a5437f3e13aa 49 /*
fcalzadas 0:a5437f3e13aa 50 #===============================================================================
fcalzadas 0:a5437f3e13aa 51 |
fcalzadas 0:a5437f3e13aa 52 | P R O G R A M A P R I N C I P A L
fcalzadas 0:a5437f3e13aa 53 |
fcalzadas 0:a5437f3e13aa 54 #================================================================================
fcalzadas 0:a5437f3e13aa 55 */
fcalzadas 0:a5437f3e13aa 56 int main() {
fcalzadas 0:a5437f3e13aa 57 rojo = on;
fcalzadas 0:a5437f3e13aa 58 verde = on;
fcalzadas 0:a5437f3e13aa 59 pc_serial.baud(9600);
fcalzadas 0:a5437f3e13aa 60 while(1)
fcalzadas 0:a5437f3e13aa 61 {
fcalzadas 0:a5437f3e13aa 62 Inicio: pc_serial.printf(" DIGITE UN NUMERO SECRETO DE 0 A 9 \r\n");
fcalzadas 0:a5437f3e13aa 63 char secreto = pc_serial.getc();
fcalzadas 0:a5437f3e13aa 64 rojo = on;
fcalzadas 0:a5437f3e13aa 65 verde = on;
fcalzadas 0:a5437f3e13aa 66 Intenta: pc_serial.printf(" ADIVINA EL NUMERO, \r\n");
fcalzadas 0:a5437f3e13aa 67 char respuesta = pc_serial.getc();
fcalzadas 0:a5437f3e13aa 68 if( secreto < respuesta )
fcalzadas 0:a5437f3e13aa 69 {
fcalzadas 0:a5437f3e13aa 70 pc_serial.printf(" Es mas Bajo \r\n");
fcalzadas 0:a5437f3e13aa 71 rojo = on;
fcalzadas 0:a5437f3e13aa 72 verde = off;
fcalzadas 0:a5437f3e13aa 73 goto Intenta;
fcalzadas 0:a5437f3e13aa 74 }
fcalzadas 0:a5437f3e13aa 75 if( secreto > respuesta )
fcalzadas 0:a5437f3e13aa 76 {
fcalzadas 0:a5437f3e13aa 77 pc_serial.printf(" Es mas Alto \r\n");
fcalzadas 0:a5437f3e13aa 78 rojo = off;
fcalzadas 0:a5437f3e13aa 79 verde = on;
fcalzadas 0:a5437f3e13aa 80 goto Intenta;
fcalzadas 0:a5437f3e13aa 81 }
fcalzadas 0:a5437f3e13aa 82 if( secreto == respuesta )
fcalzadas 0:a5437f3e13aa 83 {
fcalzadas 0:a5437f3e13aa 84 pc_serial.printf(" CORRECTO!, Es igual a: %c \r\n",secreto);
fcalzadas 0:a5437f3e13aa 85 rojo = off;
fcalzadas 0:a5437f3e13aa 86 verde = on;
fcalzadas 0:a5437f3e13aa 87 wait(1.0);
fcalzadas 0:a5437f3e13aa 88 rojo = off;
fcalzadas 0:a5437f3e13aa 89 verde = off;
fcalzadas 0:a5437f3e13aa 90 wait(1.0);
fcalzadas 0:a5437f3e13aa 91 rojo = off;
fcalzadas 0:a5437f3e13aa 92 verde = on;
fcalzadas 0:a5437f3e13aa 93 wait(1.0);
fcalzadas 0:a5437f3e13aa 94 pc_serial.printf(" Eres un Genio !!! \r\n");
fcalzadas 0:a5437f3e13aa 95 wait(1.0);
fcalzadas 0:a5437f3e13aa 96 rojo = on;
fcalzadas 0:a5437f3e13aa 97 verde = off;
fcalzadas 0:a5437f3e13aa 98 wait(1.0);
fcalzadas 0:a5437f3e13aa 99 rojo = off;
fcalzadas 0:a5437f3e13aa 100 verde = on;
fcalzadas 0:a5437f3e13aa 101 }
fcalzadas 0:a5437f3e13aa 102 pc_serial.printf(" Quieres intentarlo de nuevo? \r\n");
fcalzadas 0:a5437f3e13aa 103 pc_serial.printf(" 0 = No \r\n 1 = Si \r\n");
fcalzadas 0:a5437f3e13aa 104 char opcion = pc_serial.getc();
fcalzadas 0:a5437f3e13aa 105 if( opcion == '1' ) goto Inicio;
fcalzadas 0:a5437f3e13aa 106 else if( opcion == '0' )
fcalzadas 0:a5437f3e13aa 107 {
fcalzadas 0:a5437f3e13aa 108 pc_serial.printf(" Eso es todo Amigos! \r\n");
fcalzadas 0:a5437f3e13aa 109 break;
fcalzadas 0:a5437f3e13aa 110 }
fcalzadas 0:a5437f3e13aa 111 }
fcalzadas 0:a5437f3e13aa 112 }
fcalzadas 0:a5437f3e13aa 113
fcalzadas 0:a5437f3e13aa 114 /*
fcalzadas 0:a5437f3e13aa 115 +--------------------------------------------------------------------------------
fcalzadas 0:a5437f3e13aa 116 | EJERCICIO
fcalzadas 0:a5437f3e13aa 117 |
fcalzadas 0:a5437f3e13aa 118 | 1.- Este programa tambien acepta letras o caracteres?
fcalzadas 0:a5437f3e13aa 119 | 2.- Modificar este programa para:
fcalzadas 0:a5437f3e13aa 120 | a) Que solo acepte números
fcalzadas 0:a5437f3e13aa 121 | b) Agregar un contador de Número de Intentos
fcalzadas 0:a5437f3e13aa 122 |
fcalzadas 0:a5437f3e13aa 123 +--------------------------------------------------------------------------------
fcalzadas 0:a5437f3e13aa 124 |
fcalzadas 0:a5437f3e13aa 125 | EXAMEN
fcalzadas 0:a5437f3e13aa 126 |
fcalzadas 0:a5437f3e13aa 127 | 1.- Modificar el programa para que despliegue el número de intentos para adivinar
fcalzadas 0:a5437f3e13aa 128 | el número secreto.
fcalzadas 0:a5437f3e13aa 129 | 2.- Modificar el programa para haga eco con la respuesta que le introducimos.
fcalzadas 0:a5437f3e13aa 130 |
fcalzadas 0:a5437f3e13aa 131 | 3.- Modificar el programa para que el número secreto sea generado aleatoriamente.
fcalzadas 0:a5437f3e13aa 132 | a) Generar un Número Pseudo Aleatorio Mediante el Ticker
fcalzadas 0:a5437f3e13aa 133 | b) Utilizando la función RANDOMIZE
fcalzadas 0:a5437f3e13aa 134 | Suerte!
fcalzadas 0:a5437f3e13aa 135 +--------------------------------------------------------------------------------
fcalzadas 0:a5437f3e13aa 136 |
fcalzadas 0:a5437f3e13aa 137 | T H E A N T U L I U S T E A M
fcalzadas 0:a5437f3e13aa 138 | Research, Development, Systems Equipment, Support & Spare Parts I n c.
fcalzadas 0:a5437f3e13aa 139 | (C) Copyright 1989-2014, All rigths Reserved
fcalzadas 0:a5437f3e13aa 140 |
fcalzadas 0:a5437f3e13aa 141 | This program is licensed under rules of
fcalzadas 0:a5437f3e13aa 142 | THE BEANERS TECHNOLOGIES PROYECT
fcalzadas 0:a5437f3e13aa 143 +-------------------------------------------------------------------------------
fcalzadas 0:a5437f3e13aa 144 */