Du hast doch deine Tabelle in einer Variable abgelegt.Ich bekomm doch vom A/D nen Wert, den Teil ich durch die Referenzspannung, dann mal 20 log... Jetzt hab ich mein dB Wert. Aber wie kann ich nun sagen das der Controller nach nem passenden Wert schauen soll?
Nun nimmst Du einfach deinen A/D Wert und liest den dazgehörigen Wert aus der Variable aus.
db_wert=db_tabelle[A/DWandlerwert];
fertig.
Die Werte in der db_tabelle hast Du ja im Vorfeld für alle möglichen A/D Wandlerwerte berechnet (z.B. mit EXCEL).
In eine int Variable passen nur ganzzahlige Werte rein.aha, danke. Was ich aber nicht ganz auf die Reihe bekomme, wie meinst du das mit dem 10 oder 100 fachen des reellen dB Wertes?
Es gibt in einer int Variable kein 1,5 sondern nur 1 oder 2 in diesem Fall.
Wenn ich aber die Tabellenwerte x10 Nehme steht im Speicher 15 und erst bei der Ausgabe wird das Komma nach der 1 eingefügt.
Nehm ich die Werte x100 steht in der Tabelle 150 und auch da füge ich bei der Ausgabe das Komma nach der 1 ein.
Der Grund für dieses Spielchen ist, das sich ein Controller mit int Zahlen wesentlich leichter tut und weniger Speicher verbrät als mit float.
Der Faktor x1 x10 oder x100 ist abhängig davon wie viele Stellen hinter dem Komma angezeigt werden sollen.
Ich bin der Meinung bei einer dB Anzeige sollte es mindestens eine Stelle nach dem Komma sein.
Lesezeichen