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
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
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
Hallo entschuldige wenn ich so dumm frage aber wo ist im Sourcecode die RS232 Empfangsroutine?
Wie mit Polling unter "tmp" erledigt, allerdings wird nur 1 Zeichen empfangen!
@Yves: Danke Ich kenne mich mit PIC nicht aus. Ich hatte aber ähnliche Probleme mit SAB80535. Das Problem war, das der PC Strings sendete und der Controller ohne interuptgesteuertem Empfang nicht schnell genug war ( 14,384 MHz )
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!
... manbinichdooof sorry, sinnlose Antwort! Baud nicht gleich Oscillator :(
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
Erster Ansatz bei Kommunikations-Debugging: Das Empfangene wieder zurücksenden und sehen, was ankommt.
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
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.