Da es speziell um diesen Fühler geht, würde ich einmal die Kennlinie
aufnehmen, die Werte extern errechnen und dann eine Look-up-Tabelle
benutzen. Das ist zum einen weniger Codeaufwand und benötigt auch
weniger Rechenkapazität.
Beispiele für Multiplikationsroutinen gibt es in den App-Notes von
Atmel. Sind zwar in Assembler, aber die kann man bestimmt in C
einbinden (kenne mich mit C nicht aus).
Wurzelziehen allgemein ist schon der Hammer. Denn ein diskretes
Wurzelziehen wird auf Divisionen zurückgeführt (wenn mich meine
Mathekenntnisse nicht im Stich lassen). Wenn der µC auch keine
Divisionen kann, so muß auch das in Subtraktionen umgewandelt werden.
Wer da bei 10bit-Werten (ADC) noch den Durchblick behält... Hut ab!
Wenns dann doch allgemein bleiben soll, würde ich einfach mal
betreffend Mathegrundlagen googlen. Irgend ne Uni bietet da bestimmt
fertige Gleichungen, die man nur auf C konvertieren muß.
Viel Spaß
Gralf