Hallo zusammen, ich habe ein riesen Problem. Ein Zahlenbereich von -3,0 bis +3,0 soll in 255 Schritten als Hexwert umgewandelt werden. Also -3,0 entspricht 0x00 = 0d 0,0 entspricht 0x7F = 127d +3,0 entspricht 0xFF = 255d Bei einer Spanne von 6,0 erreiche ich bei Division durch 255 eine Schrittweite von 0,0235... Naiverweise habe ich an eine Tabelle gedacht. Aber das währe doch eine zu plumpe Lösung , oder? Was sagen die mathematischen Genies in diesem Forum dazu? Es soll zwar in C programmiert werden, mich interessiert aber vorerst das Prinzip zu einer Mathematischen Lösung. Schönen Gruß Brillitsch
(wert+3)/255 muesste hinhauen. und wenn du es nicht immer berechnen willst, dann nimm ne tabelle.
nein nein float wert; char neuerwert wert += 3; wert *= 42.5; wert /= 255; neuerwert = (char)wert;
Hallo, ich würde sagen mathematisch ist das f(x) = 127 + 42.33 * x Gruß Schmidle
halt hab au n fehler :-P ohne die zeile wert /= 255;!!!!!!!! zum prinzip: 0-6 soll 0-255 entsprechen 255/6 = 42.5 daher bsp: wert = 0 (127 soll ergebnis sein) wert += 3; // wert = 3 wert *= 42.5; //wert = 127.5 neuerwert = (char)wert //neuerwert = 127 also: float wert; char neuerwert wert += 3; wert *= 42.5; neuerwert = (char)wert;
So, vielen Dank, für Eure Hilfe, ich habe das Verfahren von User Schmidle gewählt. Funktioniert ohne Probleme. Schönen Gruß Brillitsch
Ich bin kein grosser Fan von so gebrochenen Zahlen. Ich würde pro Bit mit 0.025 rechnen. bei 240 Schritten kannst du den Breich von +3V bis -3V ausnutzen und hast noch reserve für Übersteuern des Wertebereichs.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.