Hallo!
Ich bin momentan dabei meine Wetterstation zu bauen.
Dabei verwende ich auch einen ADC der mir den Drucksensor ausliest.
Ich hatte auch schon alles zum laufen bekommen bis ich dann auf die Idee mit Subroutinen und lokalen Variablen und so gekommen bin.
Hier mein Programm:
Auf meinem Display erscheint erstmal keine Zahl, was ich schonmal komisch finde.Code:$regfile = "m32def.dat" $crystal = 8000000 Config Sda = Portc.1 Config Scl = Portc.0 Config Lcd = 20 * 4 Cursor Off Cls Declare Sub Ads1100(luftdruck() As String) Dim K(7) As String * 7 Do Call Ads1100(k(1)) Locate 2 , 1 Lcd "Druck: " ; K(7) ; " hPa" Wait 1 Loop End Sub Ads1100(luftdruck() As String) 'Subroutine für ADS1100, Ausgabe: String * 7 Local D As Word Local U As Single , P As Single I2cstart I2cwbyte &B10010000 'Adresse (A0) und schreiben I2cwbyte &B10011100 'single conversion, 8SPS, gain 1, Messung durchführen I2cstop I2creceive &B10010001 , D , 0 , 2 'Adresse (A0) und lesen, Daten in Variable schreiben Rotate D , Left , 8 'Bytes in richtige Reihenfolge vertauschen U = D * 0.000152588 P = U + 0.76 P = P / 0.005295 Luftdruck(7) = Fusing(p , "####.##") End Sub
Und danach steht nur der Rest nach dem Komma dort (z.B. Druck: .76 hPa).
Kann mir einer sagen warum? Was habe ich falsch gemacht?
Und wenn ich schonmal dabei bin....
Ich will das ganze so aufbauen, dass ich später nur noch eine Include-datei einbinde.
...Ich weiss nur nicht wie man das macht und auf was man achten muss.
Gibts da einTutorial zu?
Vielen Dank
Marten83







Zitieren

Lesezeichen