as

Dependencies:   mbed CMSIS_DSP_5

main.cpp

Committer:
MIGUI
Date:
2018-10-22
Revision:
6:38073f406fc8
Parent:
5:0cee30954cdc
Child:
7:5a4df5ab9495

File content as of revision 6:38073f406fc8:

#include "mbed.h"
#include "datos.h"
#include "arm_math.h" //utilizar funcion de q15 a float32 para optimizar la funcion a 22ums

Timer timer;
float resultado;
int tiempo;

float calcularRMS(int16_t *datos, int longitud); //definicion del tipo de variable que devuelve la funcion
float calcularRMS2(int16_t *datos, int longitud); //definicion del tipo de variable que devuelve la funcion

int main()
{

    timer.reset();
    timer.start();
    resultado=calcularRMS(datos, 500);
    timer.stop();
    printf("****El valor Vrms es %f calculado en %d us ****\n",resultado,timer.read_us());
    
        timer.reset();
    timer.start();
    resultado2=calcularRMS2(datos, 500);
    timer.stop();
    printf("****El valor Vrms es %f calculado en %d us ****\n",resultado,timer.read_us());

}

float calcularRMS(int16_t *datos, int longitud)  // definicion de los estamentos de la funcion
{
    float k=1.007080078125000e-04;
    int64_t sumatorio=0;
    int32_t producto;
    
    for (int n=0; n<longitud; n++) {
        producto=datos[n]*datos[n];
        sumatorio=sumatorio+producto;
    }
    return sqrt(((float)sumatorio)/longitud)*k;
}