Frage zum Auslesen von Bits

Neue Frage »

Auf diesen Beitrag antworten »
sommer87 Frage zum Auslesen von Bits

Hi,

ich hab hier eine C-Control als Prozessorsystem mit Pins, die 10 Bit Signale auslesen können.
Mein angschlossener Sensor liefert jedoch 8 Bit Signale als Rückgabewert.

Kann es da zu irgendwelchen Problemen kommen?
Meine Werte sind zZ noch ziemlich falsch. Ich nehme zwar an, dass es an der Schaltung liegt, aber ich wollte schonmal die Auswertung des Signals ausschließen.

Hab jetzt nicht soviel Ahnung davon, aber ich hätte gesagt, dass dann einfach die letzten zwei Bits auf ´0 bleiben, da sie ja nicht mitgeschickt wurden und es so dann zu keinen Komplikationen kommt.

Oder muss ich da doch erst etwas umrechnen?

Schon mal vielen Dank smile

Gruß,
Benny
 
Auf diesen Beitrag antworten »
kurellajunior

Ich weiß nicht genau, was Du meinst, aber wenn Deine Werte um den Faktor 4 differieren sollten, solltest Du überprüfen, ob Du auch das niederwertige Bit an das niederwertige Bit geschlossen hast?

Ich würde nämlich die beiden höchstwertigen Bits des Eingangs auf NULL legen.
Auf diesen Beitrag antworten »
sommer87

Hi,

wie meinst du das jetzt?
Ich habe nur einen Eingangspin am Board angeschlossen.
Von daher gibt es da ja keinen ersten / letzten.

Der Sensor hat einen GND, einen VCC und einen I/O Anschluss.
Den I/O, also den Signalanschluss habe ich an den AD-Wandler Pin angeschlossen und bekomme dann einen Rückgabewert in Hexadezimalschreibweise: zB 03FD, also binär 1111111101

Mein Sensor gibt aber nach Herstellerangaben ein 8bit Vorzeichen 11111111 also MSB 1 oder 00000000 (MSB 0) und dann den Messwert als 8bit (LSB) zurück. Wäre dann also ein 9bit Gesamtwert nach Datenblatt (sorry. fällt mir gerade auf, hab ich oben falsch gesagt mit dem 8bit).

0 wäre dann also 00000000 00000000 / 0000h
0,5 ist 00000000 00000001 / 0001h
-0,5 ist 11111111 11111111 / FFFFh

Als Ergebniss dürften also entweder 8bit Werte (positiv) oder 16bit Werte (negativ) herauskommen.

03h ist also ein unzulässiges "Vorzeichen", das bei der 10bit Messung rauskam.

Sorry für den ganzen Durcheinander den ich hier schreibe, aber ich weiß nicht, wie ich es besser rüberbringen sollte... unglücklich

Danke für deine Bemühungen smile

Gruß,
Benny
Auf diesen Beitrag antworten »
kurellajunior

Ok, erstmal klarstellen.

Du hast also einen seriellen Datenstrom. Der Sensor schickt zwei Byte Daten. Davon ist das erste Byte als Vorzeichen zu interpretieren.

Wie du darauf kommst:
0,5 ist 00000000 00000001 / 0001h
-0,5 ist 11111111 11111111 / FFFFh
Ist mir allerdings schleierhaft verwirrt

00000000 00000001 / 0001h => 1
11111111 11111111 / FFFFh => -1

Landen denn die Bit in einem 10Bit-Register?

Was ist ein C-Control?
 
Auf diesen Beitrag antworten »
sommer87

Die Werte sind 0,5 / -0,5, da es ein Temperatursensor ist, der in 0,5°C Schritten misst, aber das spielt ja erstmal keine Rolle.

Eine C-Control ist ein von Conrad Electronics entwickeltes Microprozessorsystem, bestehend aus einem Prozessor und einem Board, auf dem bereits zugeordnete Ports, Taster, LCD, Tastatur, ... angebracht sind, die dann über BASIC oder CompactC angesprochen werden können.

Neben den analogen Ports, die als Rückgabewert nur 0 / 1 haben kann man einzelne Ports mittels AD-Wandler auf 10bit auslesen.
Die Rückgabewerte empfängt man dann über ein Terminalprogramm oder halt mittels C-Control-Software.
Auf diesen Beitrag antworten »
kurellajunior

Zitat:
Original von sommer87
Neben den analogen Ports, die als Rückgabewert nur 0 / 1 haben kann man einzelne Ports mittels AD-Wandler auf 10bit auslesen.
Die Rückgabewerte empfängt man dann über ein Terminalprogramm oder halt mittels C-Control-Software.

Du meinst sicher digitale Ports, die nur 0 oder 1 haben?

Du hast also einen analogen Kontakt, bei dem das analoge Eingangssignal (zB von -5V bis 5V) in [latex]2^{10}[/latex] digitale Werte umgewandelt wird?

Wo soll da das Problem liegen? oder erhälst Du digitale Signale?

Ich blick Deine Config nicht. Welches Gerät kann was?

Analoge Signale: fließende Spannung. Die Höhe der Spannung bestimmt die Signalstärke

digitale Signale: in Stufen übermittelbare Signale. meist seriell als Folge von High und low-Zuständen. brauchen min. noch eine Steuerleitung bei der Übertragung.
Auf diesen Beitrag antworten »
Brandti

Also ich habe davon zwar nicht wirklich Ahnung, aber wenn ich dich richtig verstanden habe, schickt der Sensor 8 Bit Vorzeichen plus 8 Bit Wert. Das macht meiner Meinung nach 16 Bit, womit der C-Control wahrscheinlich so seine Probleme hat.
Außerdem muss ich kurellajunior natürlich zustimmen, dass man über eine einzelne Leitung keine seriellen digitalen Signale übertragen kann.

Da du aber geschrieben hast, du hättest den I/O-Anschluss an den AD-Wandler-Anschluss angeschlossen, der ja analoge Signale in digitale konvertiert, muss der Sensor auch ein analoges Signal senden.
Bist du sicher, dass die beiden Geräte tatsächlich miteinander kompatibel sind?

PS: Sorry das des ein bisschen spät kommt
Auf diesen Beitrag antworten »
sommer87

Danke für eure Hilfen.

Eher ich muss mich entschuldigen, dass ich mich solange nicht gemeldet habe...

Hab gerade gestern noch mal nen neuen Sensor zusammengebaut und angeschlossen und es kamen auch exakte werte raus.

Hab zwar ne Durchschnittliche Temperaturabweichung von 2-7°C, aber das wird denke ich eher am Sensor als an der Datenübertragung liegen.
Der alte Sonsor wird einfach einen abgehabt haben und konnte wohl überhauptkeine richtigen Werte senden...

Die Abweichung von der Raumthemperatur werde ich mal genauer betrachten und dann durchs Programmieren ausgleichen.

Danke euch für eure Hilfe und tschuldigung für die Verwirrung, die ich gemacht habe.

Gruß,
Benny
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »