javier vicente
/
MASTER_EXAMEN_SOL
Solucion ejercicio
Revision 0:e062daca45d0, committed 2021-12-09
- Comitter:
- javiervicente
- Date:
- Thu Dec 09 23:21:38 2021 +0000
- Commit message:
- Solucion;
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r e062daca45d0 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Dec 09 23:21:38 2021 +0000 @@ -0,0 +1,86 @@ +#include "mbed.h" + +AnalogIn sensorTemp(ADC_TEMP); + +enum estados {esperandoPulsacion, esperandoSoltr, esperandoDobleClick} estado; + +const float AVG_SLOPE = 4.3e-03; +const float V30 = 1.43; + + +DigitalOut led(LED1); +DigitalIn boton(USER_BUTTON); + +Timer temporizador; + +uint32_t media=0; +float mediaf=0.0; +int contador=0; + +float calculaTemp() +{ + float temp = (V30-(media*50.35400390625e-6/contador)) / AVG_SLOPE + 30.0f; //50.35400390625e-6=3.3/65536 + return temp; +} + +void fEsperandoPulsacion() +{ + if(boton==0) { + printf("Presionado\n"); + contador++; + media+=sensorTemp.read_u16(); + mediaf+=(V30-(sensorTemp.read()*3.3)) / AVG_SLOPE + 30.0f; + temporizador.reset(); + temporizador.start(); + estado=esperandoSoltr; + } +} + +void fEsperandoSoltr() +{ + if(boton==1) { + if(temporizador.read()>2.0f) { + printf("Numero de medidas %d con temperatura media %.2f\n",contador,mediaf/contador); + media=0; + mediaf=0.0; + contador=0; + estado=esperandoPulsacion; + } else { + printf("Esperando doble click\n"); + estado=esperandoDobleClick; + } + } +} + +void fEsperandoDobleClick() +{ + if(temporizador.read()>0.5f) { + estado=esperandoPulsacion; + } else if(boton==0) { + led=!led; + estado=esperandoSoltr; + } +} + + +int main() +{ + printf("Iniciando\n"); + estado=esperandoPulsacion; + + while(1) { + switch (estado) { + case esperandoPulsacion: + fEsperandoPulsacion(); + break; + case esperandoSoltr: + fEsperandoSoltr(); + break; + case esperandoDobleClick: + fEsperandoDobleClick(); + break; + default: + break; + } + } +}
diff -r 000000000000 -r e062daca45d0 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Dec 09 23:21:38 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file