www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Serielle Daten mit PIC einlesen?


Autor: Mario Grimm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
meine Suche hier hat leider nichts passendes ergeben.
Ich möchte mit einem PIC ein 8 BIT Signal einlesen.
Der verwendete PIC hat aber keine direkte Schnittstelle dafür, so
wollte ich einfach einen Eingang nutzen.

Das Byte kommt mit 9600Baud. (keine Taktleitung)

9600 Baud bedeutet doch 9600 BIT/Sekunde
Also alle 0,0001041 Sekunden ein neues BIT? ( 1/9600) Richtig?

Der PIC arbeitet mit 4 Mhz intern also mit 1Mhz
Das sind dann 1.000.000 Takte (Befehle) /Sekunde
Dann müsste ich also alle 104,1 Takte den Port abfragen (gerundet 105)
?

Statt "10000001" bekomme ich immer "11111111"
Die Abfrage startet aber beim ersten H
Der Pegelwandler ist auch OK. Der Oszi zeigt mir gute Impulse an.

Hab ich da einen Rechenfehler oder gibt es da einen einfacheren Weg.

Danke für jeden Tip.

Autor: smartie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das Startbit kommt, mußt Du noch nen halben Puls länger
warten,damit Du die Mitte des Pulses erwischt und nicht die Flanke.

Schaumal bei Microchip, da gibts massig Applikationen, z.B. AN712
Autoboaud-Erkennung.

Autor: Markus_8051 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du ein zwei-Kanal-Oszi hast, dann gib mal genau zu dem Zeitpunkt,
wo Du den einen Port abfragst auf einem anderen Portpin einen
Flankenwechsel aus und beobachte diesen mit dem zweiten Kanal. Dann
kannst Du genau sehen, zu welchen Zeiten der µC die Daten einliest.

Gruß,
Markus_8051

Autor: Markus_8051 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach, noch etwas, sind das wirklich nur 8 bit die da an Daten ankommen,
ohne Start/Stopbit?

Autor: Andreas Häusler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Der CCS Compiler liefert einen Software UART gleich aus Library
Funktion mit. Da kannst Du die gewünschten Pins, die Baudrate usw.
selber definieren und hast mit dem Rest fast nichts mehr zu tun. Eine
tolle Sache. Hab damit schon auf einem 8Pin / PIC in 5Min. eine UART
zum Laufen gebracht.

Gruss Andy

Autor: Mario Grimm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank für die zahlreichen Antworten!!!!
Stimmt 8 Bit war nicht richtig, sondern mit Start und Stopbit.
Also 5 Bits hintereinander konnte ich schon genau einlesen.
Da es aber Möglich ist, das es ohne Pause auch mehr sein können, ist
meine Routine noch zu ungenau.
Die Idee mit dem 2 Kanal-Oszi ist gut. Zum Glück hatte ich mir gleich
so einen gekauft.

Das AN721 schau ich mir dann auch mal an. Hoffentlich versteh ich das
mit meinen Englisch-Kenntnissen.

Hi Andy.
Ich arbeite mit MPLAB. Und kenne mich auch sonnst nicht so aus.
Welchen CSS-Compieler meinst Du. Falls das nicht verboten ist, könntest
Du mir das Library zusenden? Wenn das noch etwas Dokumentiert ist, wär
das eine ganz tolle Sache :o)

DANKE!

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Und Hast du eh nicht darauf vergessen deinen PIN als Eingang zu
definieren?
Die UART-Lib von CCs kannst du glaube ich nicht verwenden.

Schau mal auf folgende seite: http://www.fernando-heitor.de/

Hier wird auch´der CCS Compiler beschrieben und da wirst du auch mehr
hilfe finden.

mfg schoasch

Autor: Mario Grimm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Schoasch

Danke für den Link!!!

>Und Hast du eh nicht darauf vergessen deinen PIN als Eingang zu
definieren?<

Den Satz versteh ich nicht ;o).
Klar ist mein Pin als Eingang definiert, sonnst geht es ja nicht.
Oder was meinst Du?

Autor: schlizbäda (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mario,

vielleicht bist Du in die berühmte "Analog-Falle" getappt. Die
I/O-Pins von Port A sind mit den AD-Modulen gemultiplext und nach einem
Reset im AD-Modus. Nähere Hinweise auf www.sprut.de

schlizbäda

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo schlizbäda,

warst Du in einem zeitloch ? ;o)
Danke für den Tip, aber der kommt Monate zu spät.
Was ich übersehen hatte war das Stopbit, welches ein L ist und ich
dachte das kommt auch als H an. Man kann ja nicht alles wissen.
das Programm funktioniert dann auch.

Gruß Mario

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.