Hallo,
beim Lesen von 16Bit Werten an der I2C-Schnittstelle des TX mit einem Temperatur/Feuchte-Sensor bin ich über das Problem des eingeschränkten Zahlenbereichs gestolpert, da Werte über 32768 als negative Zahlen interpretiert werden.
Zwei Umwandlungen habe ich mir überlegt.
1. eine Verzweigung: Wenn Zahl ≥ 0 dann Wert:= Zahl andernfalls Wert := 65536 + Zahl
2. Mit SHR um 1 Stelle wird die führende 1 (das "Minuszeichen") unterdrückt. Da dies aber einer Division durch 2 entspricht, muss anschließend wieder mit 2 multipliziert werden.
Bei ungeraden Zahlen stimmen die Ergebnisse nicht überein, was aber in vielen Fällen unerheblich sein wird.
Gruß,
Stuessi
16 Bit INT in RoboPro
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Re: 16 Bit INT in RoboPro
Hallo Stuessi,
es gibt in Robo Pro die Möglichkeit 16bit Zahlen als "Char" (0 bis 65535) einzulesen. Das Symbol ist das Gleiche (Umwandlung Ganzzahl / Gleitkomma). Robo Pro zeigt dann das Symbol mit der Schrift "UINT16 / FP48" an.
Somit bräuchte man deine Rechenoperation gar nicht.
Gruß
Christian
es gibt in Robo Pro die Möglichkeit 16bit Zahlen als "Char" (0 bis 65535) einzulesen. Das Symbol ist das Gleiche (Umwandlung Ganzzahl / Gleitkomma). Robo Pro zeigt dann das Symbol mit der Schrift "UINT16 / FP48" an.
Somit bräuchte man deine Rechenoperation gar nicht.
Gruß
Christian
Re: 16 Bit INT in RoboPro
Hallo Christian,
danke für den Hinweis!
Gruß,
Stuessi
danke für den Hinweis!
Gruß,
Stuessi
Re: 16 Bit INT in RoboPro
Stuessi,
welchen Sensor verwendest du?
Falls es der Bosch Sensor BME280 ist, da wirst du sicher einige Stunden verbracht haben / verbringen, bezüglich Kompensationsformeln in Robo Pro.
Wie weit bist du?
Der Sensor ist super interessant, damit kann man auch Höhenunterschiede wie mit dem BMP280 von ca. 0.1 mm messen...
welchen Sensor verwendest du?
Falls es der Bosch Sensor BME280 ist, da wirst du sicher einige Stunden verbracht haben / verbringen, bezüglich Kompensationsformeln in Robo Pro.
Wie weit bist du?
Der Sensor ist super interessant, damit kann man auch Höhenunterschiede wie mit dem BMP280 von ca. 0.1 mm messen...
Re: 16 Bit INT in RoboPro
Hallo Christian,
es ist ein SI7021 HTU21 SHT21 GY-21 I2C Temperatur und Feuchtigkeits Sensor, eigentlich für 3,3 V, funktioniert aber (leider nur) im online-Betrieb auch an der TX-Schnittstelle. Die Werte scheinen zu stimmen.
Gruß,
Stuessi
Nachtrag:
Mit dem TXT funktioniert das Programm auch im offline Betrieb. Allerdings muss ich statt "°C" "grd.C " schreiben. Das ° Symbol wird nicht angezeigt und blockiert die Ausgabe des Wertes?!
es ist ein SI7021 HTU21 SHT21 GY-21 I2C Temperatur und Feuchtigkeits Sensor, eigentlich für 3,3 V, funktioniert aber (leider nur) im online-Betrieb auch an der TX-Schnittstelle. Die Werte scheinen zu stimmen.
Gruß,
Stuessi
Nachtrag:
Mit dem TXT funktioniert das Programm auch im offline Betrieb. Allerdings muss ich statt "°C" "grd.C " schreiben. Das ° Symbol wird nicht angezeigt und blockiert die Ausgabe des Wertes?!