hallo ich bin nun schon eine weile daran die serielle schnittstelle meines ds89c420 zu programieren. mit dem interrupt hat es nicht richtig hingehauen. sobald ich mit printf() ein zeichen gesendet hatte ging nichts mehr. nun habe ich den byte empfang mit der getc() fkt gelöst. das funktioniert soweit auch gut. nun meine frage: wenn bei der übertragung etwas schief geht, das heisst wenn keine zeichen mehr bei meinem prozessor ankommen und das programm ist gerade am lesen, wird der prozessor sich aufhängen. oder besser gesagt er wartet bis er ein zeichen empfängt. aber es kommt ja keines. wie würded ihr so eine komunikation über die serielle schnittstelle lösen das sowas nicht passieren kann? ich wäre sehr dankbar über ein paar tips oder evtl. ein bsp wie man das mit dem interrupt lösen könnte. der ds89c420 ist "8051" kompatibel. gruss tobias
Ich programmiere meine Schnittstelle (zumindest) auf empfangsseite immer über Interrupts. Also wenn ein Zeichen fertig empfangen im Empfangsbuffer steht, dann wird der Interrupt ausgelöst. Die Interruptfunktion holt dann das Zeichen und wertet es aus oder fügt es einem Puffer hinzu. Gruß, Florian
hallo florian ich habe das auch mal versucht und der empfang hat funktioniert. aber wenn ich dann ein zeichen senden wollte mit printf() hat das ganze nicht mehr hingehauen. ich wäre sehr dankbar wenn mir jemand ein kleines bsp. geben kann wie ich senden und empfangen mit interrupt lösen kann. tobias
die komunikation läuft jetzt mit interrupts. vieleicht interrsierts ja noch jemand anders, deshalb habe ich das programm mal angehängt. gruss tobias
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.