ddd
Dependencies: mbed CMSIS_DSP_5
main.cpp
- Committer:
- javiervicente
- Date:
- 2018-10-24
- Revision:
- 6:2a9b1cc25f1b
- Parent:
- 2:69827542e976
- Child:
- 7:b5d028a49c98
File content as of revision 6:2a9b1cc25f1b:
#include "mbed.h" #include "datos.h" #include "arm_math.h" Timer timer; int tiempo; float resultado; float calcularRMS(int16_t *datos, int longitud); float calcularRMS2(int16_t *datos, int longitud); 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(); resultado=calcularRMS2(datos, 500); timer.stop(); printf("****El valor Vrms2 es %f calculado en %d us ****\n",resultado,timer.read_us()); } float calcularRMS(int16_t *datos, int longitud) { int64_t sumatorio=0; int32_t producto; float constante=4.503799026946597e-06; //3.3/2^15/sqrt(length(datos)) for (int n=0; n<longitud; n++) { producto=datos[n]*datos[n]; sumatorio+=producto; } return sqrt((float)sumatorio)*constante; } float calcularRMS2(int16_t *datos, int longitud) { float constante=1.007080078125000e-04; //3.3/(2^15) q15_t resultado=0.0; arm_rms_q15 ((q15_t *)(datos), longitud, &resultado); return resultado*constante; }