Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Technische Informatik » Frage zum Auslesen von Bits » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 8 Beiträge
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
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
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.
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.
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?
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
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.
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