Forum: Mikrocontroller und Digitale Elektronik UART


von Tabi (Gast)


Lesenswert?

Hi!

Ich habe folgendes Problem:
Ich habe einen AT89S8252 programmiert für die serielle Kommunikation.
Das Programm läuft wunderbar und alles klappt wie es soll. Ich habe nur
Recourcen verwendet, die auch der kleinere AT89C5051 bereitstellt. Ich
habe also identischen Sourcecode, für beide Prozessoren, nur dass bei
dem AT89C4051 das Senden über den UART nicht klappt.
Zum Testen habe ich folgendes programmiert:
Beim Empfang, wird das Byte wieder gesendet. Es kommt aber immer nur
255, egal was ich in SBUF schreibe. Ich konnte aber testen, dass die
Bytes richtig empfangen werden. Ich habe auch die Baudrate mit dem Oszi
überprüft, da stimmt alles.
Warum klappt das nicht???
Die Prozessoren sind doch baugleich, bis auf die Extras, die der 8252
hat, die ich aber nicht verwende.

Hiiiiilfe

Tabi

von Profi (Gast)


Lesenswert?

Hast Du trotzdem beim Compilieren / Flashen als Type den 5051 angegeben?
Vielleicht hat er ein paar Bits an anderer Stelle stehen.

von Tabi (Gast)


Lesenswert?

ich hatte tatsächlich noch im compiler den falschen prozessor angegeben,
aber die korrektur hat nichts gebracht :-((

von Profi (Gast)


Lesenswert?

Steht der Type im Sourcecode? das könnte Vorrang vor den
Compilereinstellungen haben. Ansonsten weiß ich auch keinen Rat mehr.

von Tabi (Gast)


Lesenswert?

Ist echt komisch. Im Code steht nur das Headerfile für die
Registerzuordunungen und das habe ich ausgetauscht, bzw. den Header für
den kleinen Prozessor genommen. Un mit dem Header läuft der Code auch
auf dem großen :-/

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.