Moin!
Also um mit dem Sensor was zu messen, ist es eigentlich voellig ueberfluessig, das in so komplizierte Formeln zu uebersetzen. Eine Interpolation zwischen den vorgegebenen Stuetzpunkten reicht doch voellig aus. Und die ist sehr einfach zu programmieren und kommt mit den Grundrechenarten aus, was wesentlich weniger Rechenzeit braucht als irgendwelche Exponentialfunktionen. Das Beispiel unten ist fuer nen ADXL202, aber fuer den Sharp waeren bloss die Werte in den Tabellen anders:

Code:
int adxl_reading[21]={451,469,473,478,483,488,493,498,504,510,516,522,528,533,539,544,549,554,559,563,583};
int adxl_angle[21]  ={-90,-45,-40,-35,-30,-25,-20,-15,-10,-5,  0,  5, 10, 15, 20, 25, 30, 35, 40, 45, 90};

double lookup(int x,int inp[],int outp[]) {
	int i=0;
	if(inp[0]>=x) return outp[0];
	if(inp[21-1]<=x) return outp[21-1];
	while(inp[i]<x) i++;
	return (outp[i-1] + ( (x-inp[i-1])/(inp[i]-inp[i-1]) *(outp[i]-outp[i-1]) ) );
}

istwert=lookup(rohistwert,adxl_reading,adxl_angle);
Nils