Forum: Compiler & IDEs Messwerttabelle


von Tin (Gast)


Lesenswert?

Hallo
Ich hab noch eine Frage die mir seit einer Weile auf der Zunge liegt.
Gibt es eine Möglichkeit Messwerte (über ADC) in eine Tabelle zu legen 
und sie umzuschlüsseln in Zahlen?

In Basic gibt es den Befehlt Tabelle dafür, leider hab ich sowas in C 
noch nicht gefunden, gcc-avr, außer über eine sehr umfangreiche 
IF-Abfrage oder einer Select-Case Methode.
Da es aber Wertebereiche von z.B. 100-150 = 10 ist, müsste ich 50 mal 
das selbe Tippen (101 = 10, 102 = 10...).

Gibt es eine bessere Methode für so ein Fall?

von Falk B. (falk)


Lesenswert?

@ Tin (Gast)

>Ich hab noch eine Frage die mir seit einer Weile auf der Zunge liegt.
>Gibt es eine Möglichkeit Messwerte (über ADC) in eine Tabelle zu legen
>und sie umzuschlüsseln in Zahlen?

Der ADC liefert schon Zahlen. Im Normalfall muss man nur einfach 
umrechnen, siehe

Festkommaarithemetik
AVR-Tutorial: ADC

Tabellen nutzt man nur, wenn

a) die Umrechung sehr schnell gehen muss
b) die Umrechung ein komplexe, nichtlineare Rechnung erfordert

>In Basic gibt es den Befehlt Tabelle dafür, leider hab ich sowas in C
>noch nicht gefunden,

Ein Array?

> gcc-avr, außer über eine sehr umfangreiche
>IF-Abfrage oder einer Select-Case Methode.

AUA!

>Da es aber Wertebereiche von z.B. 100-150 = 10 ist, müsste ich 50 mal
>das selbe Tippen (101 = 10, 102 = 10...).
1
if (adc>=100 && adc <=150) wert =10;

Nur mal so als Idee.

MFG
Falk

>Gibt es eine bessere Methode für so ein Fall?

Ja.

MFG
Falk

von Tin (Gast)


Lesenswert?

Umrechnung nützt mir leider nichts, da es nicht Linear ist.
Dein Beispiel mit der IF-Abfrage gefällt mir, daran dachte ich nicht ist 
aber genau das was ich bräuchte.

Besten Dank :)

von Falk B. (falk)


Lesenswert?

@ Tin (Gast)

>Umrechnung nützt mir leider nichts, da es nicht Linear ist.

Dann nimm ein Array. Das kommt sinnvollerweise in den FLASH.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmspeicher_.28Flash.29

MfG
Falk

von Tin (Gast)


Lesenswert?

Vielen Dank für die Tips, ich werde es mit dem Array machen.

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
Noch kein Account? Hier anmelden.