PENNA_B/Exp01/Core/Src/DEXP.c
2025-11-18 16:01:22 +01:00

24 lines
651 B
C

#include <stdint.h>
#include "DEXP.h"
void eval_dexp(int a, int t1, int t2, uint16_t* espo){
// calcola la differenza punto punto fra due exp. decrescenti con medesima ampiezza
// a: ampiezza dell'exp.
// t1: valore di exp(-1/tau1)*1024
// t1: valore di exp(-1/tau2)*1024
uint32_t tmp1, tmp2;
uint16_t prec1, prec2;
// in posizione 0 imposta 0 (hanno stessa ampiezza
prec1 = (uint16_t)a;
prec2 = (uint16_t)a;
espo[0] = 0;
for(int i=1; i<100; i++){
tmp1 = (uint32_t) prec1 * t1;
tmp2 = (uint32_t) prec2 * t2;
espo[i] = (uint16_t) ((tmp1-tmp2) >> 10);
prec1 = tmp1 >> 10;
prec2 = tmp2 >> 10;
}
}