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.
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.
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
Ach, noch etwas, sind das wirklich nur 8 bit die da an Daten ankommen, ohne Start/Stopbit?
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
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!
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
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?
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
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
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.