www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AD-Wandlung mittels PIC


Autor: Luki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich hab ein Problem: und zwar wandle ich an drei verschiedenen Pins drei 
unterschiedliche AD-Werte und will diese anschließend weitersenden und 
dann verarbeiten.
Nun bin ich so weit, dass das Senden der restlichen Daten im String 
funktioniert, aber bei jedem AD-Wert spuckt der PIC (16F88) am PC "1E" 
aus!
Hab mich mal erkundigt, dass steht irgndwie für RS und soll soviel 
bedeuten, wie "record separator" und das steht für ein 
Informationstrennzeichen...

Weiß irgendwer wo der Fehler liegt bzw. hat jemand eine Idee warum 
gerade immer wieder 1E ausgegeben wird, hat das eine tiefere Bedeutung?

danke schon im Vorhinein,

lg luki

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus Deinen Infos würde ich mal texten:

Wenn Du den AD-Wandler nur mit 8 Bits ausliest, dann ist der angelegte 
Spannungswert nach der Wandlung eben "1E", es gibt noch 255 andere 
mögliche Werte, die Du zum Teil in ASCII-Tabellen wiederfindest.

Benutzt Du die volle 10-Bit-Auflösung des AD-Wandlers, dann hast Du 
vergessen, uns mitzuteilen, wie Du die Wandlung von 10-Bit-Wert in ASCII 
vornimmst. Da können wir nicht helfen.

...BTW: Doppelpostings sind in allen Foren nicht gern gesehen!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Luki schrieb:

> Hab mich mal erkundigt, dass steht irgndwie für RS und soll soviel
> bedeuten, wie "record separator" und das steht für ein
> Informationstrennzeichen...
>
> Weiß irgendwer wo der Fehler liegt bzw. hat jemand eine Idee warum
> gerade immer wieder 1E ausgegeben wird, hat das eine tiefere Bedeutung?

Mal eine Gegenfrage. Angenommen du empfängst die Daten

1232653298

Welche Zahlenwerte verstecken sich in dieser Zahlenflut?

Und jetzt das Ganze nochmal

123 RS 26 RS 53 RS 2 RS 98

Welche Zahlenwerte verstecken sich jetzt in dieser Zahlenflut?

Autor: Chris D. (m8nix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

klingt nach RS232 Übertragung???

Falls ja, könnte der PIC die Spannungen schon richtig auslesen, nur beim 
Übertragen auf den PC kommt es zu Fehlern, da die Baudraten beider 
Systeme nicht "harmonieren".

Je nach Systemtakt (Quarz) können die erzeugten Baudraten einen 
erheblichen Fehler aufweisen.

http://www.micromagicsystems.com/#/pic-baud/4523812801

Gruss Chris

Autor: Luki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaub zwar nicht dass es daran liegt - aber der Baudraten-Rechner is 
echt ein cooles ding =) danke für den tipp

lg

Autor: Frank B. (frankman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Luki schrieb:
> ich glaub zwar nicht dass es daran liegt - aber der Baudraten-Rechner is
> echt ein cooles ding =) danke für den tipp
>
> lg


Sag mal, hast du AD wert von Hex in ASCII umgewandelt?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Sag mal, hast du AD wert von Hex in ASCII umgewandelt?

Das möchte er uns nicht verraten.

Beitrag "ASCII "1E" ?"

Autor: Luki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK - ich denke ich bin allen hier inzwischen eine genaue Erläuterung 
meines Problems schuldig (tut mir leid für die konfusen Beschreibungen, 
aber ich war gestern schon ein wenig hinüber und hab versucht eine 
Lösung aus dem Himmel zu zaubern).

Also: ich will die Daten eines Beschleunigungssensor (X,Y,Z Achse) 
mittels PIC16F88 auswerten und anschließend in einen ASCII-Code 
umwandeln und diesen dann weitersenden.

Die drei Achsen des Beschleunigungssensor sind am PIC am PORTA an den 
Pins 0, 1 und 4 angeschlossen. Der Sensor liefert eine Spannung, die ich 
mit dem PIC AD wandeln will. Und dabei war mein Problem, dass ich 
ständig "1E" erhalten habe - egal welche Achse, egal welche Position.

Da der Beschleunigungssensor aber richtig arbeitet und die Platine sonst 
auch einwandfrei funktioniert bin ich mir nun sehr sicher gewesen den 
Fehler in der Software zu finden.

Ich kann das gesamte erst morgen oder am Dienstag austesten - jedoch 
habe ich heute vormittag einen groben Anfängerfehler gefunden:
der Wert der AD-Wandlung wird in ein Register geschrieben und ich habe 
dieses Register mit einem Befehl ins WREG verschieben wollen. jedoch hab 
ich den falschen Befehl verwendet - ich hab ständig verlangt, das der 
PIC einen "Literal"-Wert ins WRGE schiebt - jedoch wollte ich ein sich 
ständig änderndes Register verschieben. Ich denke das könnte wirklich 
der Grund für das Problem gewesen sein.

Danke an euch alle für die Hilfe (trotz meiner chaotischen 
Beschreibungen).

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dein Literal dann noch 1E lautet, wäre diese Überlegung sehr nahe 
liegend.

Du solltest aber auch noch folgendes beachten: Der PIC schreibt das 
Messergebnis in zwei Register, da es ein 10-Bit ADC ist. Irgendwo kannst 
du noch einstellen, ob du lieber die höheren 8 Bits im High-Register 
haben willst und die beiden restlichen im Low-Register oder ob du die 8 
niederen Bits im Lowregister haben willst und die beiden höchstwertigen 
Bits im Highregister. Außerdem musst du nach dem Umschalten auf einen 
anderen Port eine gewisse Zeit warten, bevor du die Messung startest. 
Lies dir mal die Hinweise zum ADC bei sprut.de durch. Da wird dann 
einiges klarer.

Sven

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.