Zitat Zitat von screwdriver
@for_ro + @PicNick
Danke euch beiden. Eure Lösungen würden funktionieren. Aber ich finde sie verschlechtern eher die Lesbarkeit des Codes.

Ein Unterprogrammaufruf der Form

call DS1820_TEMPERATURE_READ(Temperatur,Aussensensor)
oder
Aussentemperaur= DS1820_TEMPERATUR_READ(Aussensensor)

mit dem Label

Aussensensor:
Data 16 , 135 , 205 , 170 , 0 , 8 , 0 , 118

finde ich die eleganteste Lösung. Und da möchte ich auch hin...

In der Bascom-eigenen Graphlib glcd.lib gibts z.B. eine Funktion

Showpic x,y,label.

Da wird doch auch ein Label übergeben. Wieso klappt das denn nicht mit einer selbstdeklarierten Funktion. Muß ich denn wirklich den Umweg über eine Lib gehen? Da müßte ich mich erstmal einarbeiten. Allerdings wäre eine Lib für die DS1820 Sensoren auch schon längst überfällig.
Warum willst du dir das so schwer machen. Ich denke, dass du die Lösung mit der Lookup()-Funktion nicht wirklich durchdacht hast.

Stell dir mal sowas vor:

Code:
Const Aussensensor = 0
Const Innensensor = 1

call DS1820_TEMPERATURE_READ(Temperatur,Aussensensor)

...


Sub call DS1820_TEMPERATURE_READ(Temp,sensor_Nr)
   Offset=sensor_Nr*8
   For I=1 to 8
       Rom(I) = Lookup(Offset,Sensor_Adressen)
   Next I
   ...
End Sub


Sensor_Adressen:
Data 16 , 135 , 205 , 170 , 0 , 8 , 0 , 118   'Aussen
Data 16 , 135 , 205 , 171 , 0 , 8 , 0 , 119   'Innen
Für mich sieht das sehr einfach aus.

Gruß

Rolf

Edit PicNick Ich hab versucht, den quote Tags in deinem Sinne zu setzen. Wenn das ein Schuss in den Ofen war, tut's mir leid