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
main.cpp@0:a5437f3e13aa, 2019-03-28 (annotated)
- Committer:
- fcalzadas
- Date:
- Thu Mar 28 19:46:59 2019 +0000
- Revision:
- 0:a5437f3e13aa
Version Original
Who changed what in which revision?
User | Revision | Line number | New 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 | */ |