Stò realizzando un progetto con Picolog ME dove devo eseguire delle operazioni matematiche in interruzione ogni 1 mSec mi chiedevo se utilizzando operazioni in virgola mobile avrò tempi di esecuzione molto lunghi.
I prodotti della famiglia Picosyst ed il NetlogII utilizzano come processore una scheda basata su un microcontrollore della famiglia MCS51 con clock a 40 mHz. Questo processore non è in grado di eseguire in modalità nativa i calcoli in virgola mobile (Floating) ma Remoter in linguaggio RILmette a disposizione una serie di funzioni matematiche ottimizzate per eseguire tutte le operazioni sia in virgola fissa che mobile.
In linguaggio "C" è il compilatore stesso che nella libreria math contiene il supporto per tutte le funzioni matematiche. Per una indicazione dei tempi di esecuzione riporto alcuni esempi con i relativi tempi.
Sottrazioni e somme tra due variabili, da 30 a 40 uSec VarFloatC=VarFloatA-VarFloatB;
Moltiplicazione e divisioni tra due variabili, da 50 a 100 uSec VarFloatC=VarFloatA/VarFloatB;
Calcolo radice quadrata di un numero, da 200 a 300 uSec VarFloatB=sqrt(VarFloatA);
Calcolo media su valore A con coefficente B, da 80 a 140 uSec VarFloatC+=((VarFloatA-VarFloatC)/VarFloatB);