Forum: Mikrocontroller und Digitale Elektronik problem mit rs232


von tobias hofer (Gast)


Angehängte Dateien:

Lesenswert?

hallo

im moment versuche ich gerade die serielle schnittstelle zu
programiern.
folgendes problem mit anghängtem programm:

der empfang von 'b' und die bestätigung funktioniert. sobald ich
ein 'a' über die serielle schnittstelle sende wird das von meinem
programm auch empfangen.
d.h. das programm geht in die if schleife. wenn ich jetzt aber eine
andere taste drücke z.b. 'e' wir die schleife nicht mehr verlassen.

was habe ich vergessen zu programieren?

danke tobias

von Malte Bayer (Gast)


Lesenswert?

zwischen deinem do und while wird nirgendwo SBUF gesetzt, also kann die
schleife ja nicht beendet werden, da SBUF immer denselben wert hat.
nämlich "a"

von tobias hofer (Gast)


Lesenswert?

hallo

ich dachte SBUF sei der buffer für ein byte der seriellen
schnittstelle. und das SBUF nach jedem eintreffen von einem byte mit
diesem neuen überschrieben wird.
aber scheinbar irre ich mich da.
und wieso funktioniert es dann wenn ich ein 'b' sende? das wird
empfangen und wenn ich ein 'a' sende ebenfalls.

könntest du mir sagen wie ich das dann richtig programieren soll?

besten dank tobias

von tobias hofer (Gast)


Angehängte Dateien:

Lesenswert?

hallo

nun habe ich das ganze versucht mit einem interrupt der
seriellenschnittstelle zu lösen (neues programm im anhang).
das empfangen funktioniert.
wenn ich jetzt aber mit der printf() fkt. daten senden möchte geht
das nicht mehr.
ich glaube das problem könnte sein weil dann ebenfalls der interrupt
der seriellen schnittstelle ausgelöst wird. durch das TI flag.

ich mache das zum ersten mal und weiss nicht wie ich das umgehen kann
oder wie ich die daten korrekt senden kann. muss ja nicht sprintf()
sein.

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
Noch kein Account? Hier anmelden.