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
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!
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?
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
ich glaub zwar nicht dass es daran liegt - aber der Baudraten-Rechner is echt ein cooles ding =) danke für den tipp lg
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?
>Sag mal, hast du AD wert von Hex in ASCII umgewandelt? Das möchte er uns nicht verraten. Beitrag "ASCII "1E" ?"
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).
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.