RS232 programmierung unter C18

OP #817025
Hallo Leute,

ich habe folgendes Problem. Ich habe ein Demoboard und PC zur Verfügung. 
Hat jemand Erfahrung wie diese Geräte über RS232 verbinde, damit Daten 
zwischen beiden veschicken könnte? Ich habe schon ein Programm für 
meinen PIC geschrieben. PIC und PC verbinde über ein NullModem kabel. 
Für Kommunikation benutze Hyperterminal. Wenn die Daten vom PIC sende, 
werden sie von Hyperterminal empfangen, aber wenn ich ein Zeichen sende, 
wird von PIC gar nichts empfangen.
Danke, wenn jemand antwortet
OP #817061
Severino R. wrote:
> Du musst im Sourcecode auf Zeile 54 statt:
>
1
> if (c==0) {
2
>
> schreiben:
>
1
> if (c!=0) {
2
>
>
> Dann sollte es gehen. Sagt jedenfalls meine Kristallkugel.


ich habe folgender Sourcecode:

char z;


if(!DataRdyUSART())
{

z=ReadUSART();
Delay_ms(100);
putcUSART(z);

}

Ich möchte ein Zeichen epmfangen und dieses Zeichen zurück schicken. 
Leider klappt's nicht..
OP #817675
Hallo zusammen,

Arbeitet jemand mit C18-Compiler von Microchip? Ich versuche schon seit 
3 Tagen PC über USART mit PIC zu verbinden... In Dateianhang ist mein 
Sourcecode.  Wenn irgendwelches Zeichen sende oder empfange, dann sehe 
ich ganz anderes Symbol auf dem Bildschirm und LCD. Weisst jemand 
vielleicht, wo ich Fehler habe.
Danke
Angehängte Dateien:
#817686
ich muss ehrlich gestehen, dass ich bis jetzt nur immer USB gebraucht 
habe und nie RS232, aber von Michrochip gibts ganz bestimmt 
C18-sourcecode-beispiele (musst mal im installationsordner gucken). 
ansonsten kann ich dir auf die schnelle sagen, dass die schlaufe 
schneller durchlaufen wird, als dass du zeichen empfpfängst, die du 'z' 
übergeben kannst; geschweige denn zurücksenden ;) ...musst du da nicht 
irgend ein while(noch_nicht_übertragung_beendet) oder so ähnlich 
abfragen?
#817694
Andreas,

ich arbeite zwar nicht mit C18 sondern mit C30, aber probier doch mal 
den UART Empfangsinterrupt freizugeben, schreib eine ISR und setze im 
MPLAB eine breakpoint in die ISR um dann mit Watch das UART 
Empfangsregister zu lesen ob Du das gesendete Byte empfängst.

Falls nein: HW oder Konfig Problem
Falls ja: kleinen Ringbuffer in die ISR für empfangene Bytes, dann statt 
direkt aus dem UART aus dem Ringbuffer lesen.

So mach's ich.

Gruß

Gerd.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.