RS-232 empfangen mittles PIC16F628

Gast #264873
Hallo,

dies ist das erste mal, dass ich hier im Forum etwas schreibe. Obwohl
ich nun seit zwei Tagen denke, google, durch das Forum streife und mich
durch spruts Seite lese komme ich einfach nicht weiter.

Ich möchte gerne einen PIC16F628 an eine serielle Schnittstelle des PCs
anschließen und die übermittelten Daten an einem LCD-Display ausgeben.
Wenn ich die Daten in das Programm schreibe werden die auch
ordnungsgemäß ausgegeben, aber wenn ich die via RS-232 übertragenen
Daten ausgebe kommen nur seltsame Zeichen (btw. interessanten
Zeichensatz haben diese Displays).

Da das direkte Ausgeben funktioniert denke ich, dass es an meiner
RS-232 Konfiguration liegt.

Von der Hardwareseite scheit alles sauber zu sein, denn ansonsten würde
er keine Daten empfangen, oder? Als Pegelwandler setze ich einen MAX232
ein.

Ich habe den Quellcode mal angehangen. Wenn jemandem etwas einfällt
oder einen Tipp für mich hat bitte ich um eine Antwort, denn so langsam
frustriert mich das Teil :-(.

Danke und viele Grüße,
 Patrick
Angehängte Dateien:
Gast #264874
Hallo Patrick!

movlw D'26'; 9600 Baud at 3.932 MHz
movwf SPBRG

Sollte es bei 4MHz nicht "25" sein? Du benützt ja den internen 4MHz
Oszillator, ne?

Gruss
Dmitri
Gast #264875
Hallo,

ich hatte zuerst das mit dem internen Oszillator versucht, hatte aber
keinen Erfolg. Da der erhebliche Abweichungen von 4MHz haben kann habe
ich nun einen externen dran gelötet, aber auch ohne Erfolg.

Die 25 für SPBRG habe ich berechnet, aber sowohl 25, als auch 26
funktionieren nicht.

Danke,
 Patrick
Gast #264880
Aber ich denke das Polling wird schnell genug sein! Sind zur Abfrage ja
nur 2 Befehle - Die Abfrage und das goto!

Stimmt die Baudrate denn auf dem PC selber? Mit welchem "Tool" läuft
das ganze. Denn ich denke mit dem Windows Terminal kann man diese
ungerade Baudrade nicht einstellen!?

Falsche Zeichen sind meistens ein Problem einer flaschen Baudraute auf
der Seite des PCs oder des uCs!
Gast #264882
Hallo,

ich versuche masl allen zu antworten :)

Hans-Heinrich: wie Yves richtig erklärt hat geschieht das empfangen
über ein einfaches Polling. Das RS-232 Protokoll muss an im übrigen bei
diesem PIC nicht implementieren, da er das mitbringt. Ich bin im übrigen
auch der Meinung, dass es schnell genug sein sollte, da ich lediglich
ein Zeichen empfange.

Yves: Ich benutze minicom unter Linux.


Grüße,
 Patrick
Gast #264884
Hallo,

und danke für die vielen Antworten. Ich habe den Fehler gefunden :).
Zuerst einmal möchte ich sagen, dass ich doch nicht ganz so dämlich
binn, wie ich aussehe g, denn die programmierung war sichtig. ich
habe jetzt mal den MAX232 getauscht und siehe da, es funktioniert...

Aber ohne die Hilfe wäre ich wohl kaum darauf gekommen. Da mir keiner
geschrieben hat, dass das Programm nicht funktionieren kann ( aus
welchem Grund auch immer ) habe ich angefangen die Hardware mal zu
tauschen, und siehe da...

Nochmals Danke und viele Grüße,
 Ein sehr glücklicher Patrick

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.