Danke. Hätte ich die Bascom-Hilfe besser gelesen wäre mir dieser Fehler erspart geblieben:
Specify ACK if there are more bytes to read.
Specify NACK if it is the last byte to read.
Jetzt bekomme ich die zwei Werte. Der erste scheint relativ konstant zu sein, der zweite springt bei Änderung der Temperatur. Interessant wird jetzt die Umrechung. Ich versuche, einen Lösungsansatz zu finden.
Grüße
Thomas
Ich habe mich jetzt stundenlang an der Berechnung versucht, bin aber nicht wirklich zufrieden damit:
Das erste Byte ergibt die Ganzzahl für die Temperatur, zusätzlich bestimmt Bit 7 das Vorzeichen. Das zweite Byte besteht eigentlich nur aus vier Bits, weil die letzten vier Bits immer null sind.
Somit:
Byte1 = Ganzzahl
Byte2 viermal nach rechts shiften und das Ergebnis mit 0,0625 multiplizieren ergibt jenen Wert, der zur Ganzzahl addiert werden muss.
Am Papier sowie am µC funktioniert es, aber durch die notwendige Single-Variable frisst es einiges an Speicherplatz.
Später möchte ich die Werte in einem EEPROM ablegen, ich nehme an das es einfacher ist, die beiden Bytes alleine nacheinander abzuspeichern (Zelle 1: Byte1, Zelle2: Byte2) und erst vor der Ausgabe umzuwandeln. Das Abspeichern einer Single-Variable wäre mit großem Aufwand verbunden, oder sehe ich das falsch?
Grüße
Thomas
Hallo Thomas,
für eine Single müsstest du halt 4 Byte abspeichern. Halte ich hier aber sowieso für unsinnig, da du nur 16 verschiedene Werte hinter dem Komma hast.
Ich habe es bei mir so gemacht, dass ich die 16 berechneten Werte in Data Befehlen abgespeichert habe. Die legst du einmal fest und gibst sie dann nur noch nach dem Komma aus. Das Addieren habe ich also auch nicht gemacht. Warum erst eine Single verwenden um sie dann für die Ausgabe wieder umzuwandeln.
Bei Vergleichen habe ich dann nur den Ganzzahlanteil genommen. Damit hast du dann auch gleich eine Hystere mit eingebaut.
Hallo For_ro!
Danke für deine Antwort.
Du verwendest eine interessante Variante, aber ich habe mich bereits mit der Single-Methode abgefunden. Es ist einfacher und geht relativ schnell. Ausserdem benötige ich in meiner Anwendung sowieso weitere Single-Berechnungen. Interresanterweise steigt der Verbrauch an Flash-Speicher zwar mit der ersten Deklaration einer Single-Variablen stark an, bei der Deklaration von weiteren Single-Variablen wird allerdings nur wenig mehr Speicherplatz verbraucht.
Grüße
Thomas
Lesezeichen