PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sensortabellen erstellen



Xam
25.10.2005, 10:27
Hallo,

ich habe folgendes Problem:

ich möchte einen Luftfeuchtigkeitssensor ein einen AD Eingang
der mir dann die Luftfeuchtigkeit in % auf dem LCD anzeigt.

Ich habe mir gestern mal das Datenblatt des Senors angeschaut,
der Sensor arbeitet aller 5°C mit einer anderen Kennline-> also
eine Tabelle muß her.

HIER DER LINK ZU DB:
http://www2.produktinfo.conrad.com/datenblaetter/150000-174999/156545-da-01-de-Feuchtesensor_EFS10.pdf


Bei C-Control konnte man die in einen normalen Texteditor schreiben
und dann ins Programm einfügen.

1. Wie funktioniert das mit Bascom?
2. Kann (und wie) ich die Tabelle in den internen ROM ablegen,
damit der Flash nicht so "zugemüllt" wird?

Danke schonmal im Vorraus,

Thomas

Rage_Empire
25.10.2005, 11:08
Ich würde die DATA-Funktion dafür benutzen. Ist in der Bascomhilfe gut beschrieben.

hrei
25.10.2005, 11:23
Hallo,

ja, mit Data geht es natürlich, ehemalige C-Control User werden sich vermutlich mit der Lookup Funktion etwas wohler fühlen.

Auch dazu steht vieles in der Hilfe, als Beispiel hier aber nochmal die Umsetzung anhand einer Funktion für Matrixtastaturen:



'-------------------------------------------------------------------------------
Function Matrix_key() As Byte
!rcall _Key_init
!rcall _Key_Scan
Temp = _key_scan

If Temp > 0 Then
Temp = Temp - 1
Matrix_key = Lookup(temp , Matrix_data)
Else
Matrix_key = 255
End If

End Function
'-------------------------------------------------------------------------------

Matrix_data: 'Zuordnungstabelle für Matrixtast.
Data 32 , 33 , 14 , 15 , 3 , 6 , 10 , 9 , 2 , 5 , 0 , 8 , 1 , 4 , 12 , 7
' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
'-------------------------------------------------------------------------------


Viele Grüße
Henrik

Xam
25.10.2005, 21:48
Das mit der Lookup Funktion sieht ja schonmal genz gut aus
die Werte aus Data werden die als Bit gelesen? Also wenn ich z.B.
am AD0=temp beim 200. Bit 30°C habe dann liest er bei Data den 200. Wert? Wenn das so ist müsste man ihn aber auch sagen können das er nicht bei 0 sondern z.B. der erste Wert bei 200 liegt.

Oder steh ich jetzt total auf den Schlauch?

hrei
25.10.2005, 22:36
Das mit der Lookup Funktion sieht ja schonmal genz gut aus
die Werte aus Data werden die als Bit gelesen? Also wenn ich z.B.
am AD0=temp beim 200. Bit 30°C habe dann liest er bei Data den 200. Wert? Wenn das so ist müsste man ihn aber auch sagen können das er nicht bei 0 sondern z.B. der erste Wert bei 200 liegt.

Oder steh ich jetzt total auf den Schlauch?

Ob Du total auf dem Schlauch stehst weiß ich jetzt nicht :-), aber die Werte werden natürlich nicht bit- sondern byteweise (oder auch wordweise) gelesen.

Nehmen wir an, du liest einen Wert von 45, möchtest dem aber einen Wert von 80 zuweisen, dann muss an 45zigster Stelle der Data Zeile eben 80 stehen. Da gibt die Hilfe aber reichlich Auskunft. Das funktioniert im Prinzip haargenau so, wie in CCBasic oder Basic++, nur das noch ein "Data" vor den Tabellenwerten stehen muss.

Viele Grüße
Henrik