Moin Moin,
ich habe folgendes Problem: Ich möchte bis zu 4 Stück DS18B20 möglichst schnell auslesen und in einem LCD Display anzeigen. Momentan habe ich 4 Sensoren an 4 Pins und dazu eine Routine, die ich 4x aufrufe was natürlich recht lange dauert. Die Anzahl der Pins ist egal, aber es sollte irgendwie schneller gehen.
Meine aus dem Netz geklaute Routine:
Alles anzeigen
Habt ihr da nen Tip für mich wie ich das beschleunigen kann? Ich habe gelesen, das man die Sensoren auf einen Pin legen, die Seriennummern auslesen und ins Programm eintragen kann, das möchte ich aber nicht. Die Sensoren sollen Anhand der Porteingänge eindeutig zuzuordnen sein.
Gruß
Stefan
ich habe folgendes Problem: Ich möchte bis zu 4 Stück DS18B20 möglichst schnell auslesen und in einem LCD Display anzeigen. Momentan habe ich 4 Sensoren an 4 Pins und dazu eine Routine, die ich 4x aufrufe was natürlich recht lange dauert. Die Anzahl der Pins ist egal, aber es sollte irgendwie schneller gehen.
Meine aus dem Netz geklaute Routine:
Quellcode
- Config Single = Scientific , Digits = 2
- Dim DS18B20(9) As Byte
- Dim TempD1 As Single
- Dim TempD2 As Single
- Dim TempD3 As Single
- Dim TempD4 As Single
- Dim Itemperature As Integer At DS18B20 Overlay 'enthält Temp. in 0.0625°C
- .
- .
- .
- .
- Config 1wire = Portd.2
- 1wreset 'Initialisierung
- 1wwrite &HCC 'Skip ROM Kommando
- 1wwrite &H44 'Convert Temperature Kommando
- waitms 850
- 1wreset 'Initialisierung
- 1wwrite &HCC 'Rom überspringen, nur 1 Sensor
- 1wwrite &HBE 'Temperatur auslesen
- DS18B20(1) = 1wread(9) 'Daten in ein Array lesen
- TempD1 = Itemperature * 0.0625 'umrechnen des DS18B20 Wertes in Grad Celsius
- 'ausgabe
- locate 1,3
- lcd TempD1
Gruß
Stefan