Ich habe folgendes Problem: Ich betreibe die RS232 des P89C51 im Interruptmodus. Empfangen OK. Beim Senden funktioniert es nur mit 6 Zeichen. Also z.B. printf("HALLODU") Sobald ich 7 Zeichen senden will, funktioniert garnichts mehr. printf("HALLODUDA") Die Funktion putchar habe ich folgendermaßen geändert: char putchar (char c ) { if (c == '\n') c = 0x0d; SBUF = c; while(TI); } return(c); } Grüße Peter
OK - Problem gelöst! (zumindest geht´s jetzt) Es dürfte da irgendwelche Geschwindigkeitsprobleme zwischen putchar und printf geben. Habe die putchar nun so geändert, dass sie alle Zeichen in einen Puffer schreibt den ich dann selber über SBUF ausgebe.
Zum eigentlichen Problem: Du solltest so lange warten bis die Zeichen gesendet sind. Ich weiss ja nicht, wie Du das sonst machst. UDRE oder sowas ist das Register oder das Bit. (ich habe gerade mein Datanblatt oder Quellcode nicht zur Hand).
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.