practica 2

Dependencies:   mbed

Committer:
freind00
Date:
Thu Oct 25 17:33:15 2018 +0000
Revision:
1:f93d0ebd28c0
Parent:
0:e58fbc584d0b
vrsion2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
freind00 0:e58fbc584d0b 1 #include "mbed.h"
freind00 0:e58fbc584d0b 2 #include "datos.h"
freind00 0:e58fbc584d0b 3 #include "math.h"
freind00 0:e58fbc584d0b 4
freind00 0:e58fbc584d0b 5 Timer timer;
freind00 0:e58fbc584d0b 6
freind00 0:e58fbc584d0b 7 int tiempo;
freind00 0:e58fbc584d0b 8 float resultado=0;
freind00 0:e58fbc584d0b 9 float calcularRMS(int16_t *datos, int longitud);
freind00 0:e58fbc584d0b 10
freind00 0:e58fbc584d0b 11 int main()
freind00 0:e58fbc584d0b 12 {
freind00 0:e58fbc584d0b 13 timer.reset();
freind00 0:e58fbc584d0b 14 timer.start();
freind00 0:e58fbc584d0b 15 resultado=calcularRMS(datos, 500);
freind00 0:e58fbc584d0b 16 timer.stop();
freind00 0:e58fbc584d0b 17 tiempo = timer.read_us();
freind00 0:e58fbc584d0b 18 printf("****El valor Vrms es %f calculado en %d us ****\n",resultado,timer.read_us());
freind00 0:e58fbc584d0b 19 }
freind00 0:e58fbc584d0b 20
freind00 0:e58fbc584d0b 21 float calcularRMS(int16_t *datos, int longitud)
freind00 0:e58fbc584d0b 22 {
freind00 0:e58fbc584d0b 23 float constante = 4.503799027e-6;//(3.3/2e15)/sqrt(float(longitud));
freind00 0:e58fbc584d0b 24 //float constante = 1.007080078e-4;
freind00 0:e58fbc584d0b 25 int32_t producto=0;
freind00 0:e58fbc584d0b 26 int64_t suma=0;
freind00 0:e58fbc584d0b 27 for (int i=0; i<longitud; i++){
freind00 0:e58fbc584d0b 28 producto = datos[i]*datos[i];
freind00 0:e58fbc584d0b 29 suma +=producto;
freind00 0:e58fbc584d0b 30 }
freind00 0:e58fbc584d0b 31
freind00 0:e58fbc584d0b 32 return sqrt((float)suma)*constante;
freind00 0:e58fbc584d0b 33 //return sqrt((float)suma/longitud)*constante;
freind00 0:e58fbc584d0b 34 }