Tabelleneinsprung in C realisieren?

Gast #540619
Lesenswert?
• ▲
▼
Moin, moin zusammen.
Ich möchte gerne meine ADC Messwerte über einen Tabelle in scalierte 
Werte umwandeln. Dazu habe ich eine Tabelle mit zwei Spalten und 1023 
Zeilen erstellt. In der ersten Zeile steht das ADC Digit in der zweiten 
der zugehörige Wert scaliert.
Ich möchte nun in C eine Funktion schreiben die den ADC Wert bekommt und 
den zugehörigen Wert ausgibt. Wie realisiert man das in C? Über eine for 
Schleife, oder besser eine if Schleife usw. habe wenig Erfahrung mit C 
deshalb diese vielleicht auch triviale Frage.
MfG Stefan
Gast #540626
Lesenswert?
• ▲
▼
Wieviele Werte kann ADC annehmen? 1024 (10 Bit), dann brauchst du doch 
nur eine Spalte...

type_of_irgendwas skalierter_wert[1024] = { /* ... */ };
type_of_irgendwas mein_skalierter_messwert;
unsigned int adc_messwert; /* 0..1023 valid */

mein_skalierter_messwert = skalierter_wert[adc_messwert /* zur 
Sicherheit: % 1024 */];

Gruß
anderer Stefan
#540652
Lesenswert?
• ▲
▼
@ Stefan

>Ne habe nur einen Nutzbaren bereich von ca. 300 digits. Ist für ne
>Temperaturmessung.

Dann brauchst du nur ein Array mit 300 Elementen und einer Spalte.
Etwa so.

int ADC2Deg[300]={1,2,3,4,5};

Die Intitialisierung muss du natürlich noch vervollständigen.

>Hatte das jetzt so angedacht

>signed int ADC2Deg(unsigned int ADC)
>{
>Temp=Tabelle[ADC][1];
>}

Im Prinzip richtig, aber du brauchst nur eine Spalte. Du solltest dir 
aber im klaren darüber sein, dass so eine Tabelle auf einem kleinen uC 
ziemlich ins Gewicht fällt. Das Verfahren ist zwar sehr schnell, 
verbaucht aber viel Speicher. Für eine langsame Temperaurmessung ist es 
meist besser eine Formel zu verwenden.

MFG
Falk

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.