Forum: Mikrocontroller und Digitale Elektronik wegen Uart geht nichts mehr


von Obelix (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
Ich habe ein Programm für ein AirHockey geschrieben. Das Programm 
funktioniert soweit. Jetzt wollte ich über die UART-Schnittstelle ein 
MP3 programmieren. Sobald ich die UART-Schnittstelle initialisiere, 
macht das Programm, was es will. Als Mikrokontroller benutze ich den 
AT89C51CC03 und ich habe es in Keil programmiert. In der Datei befindet 
sich mein Programm. Weiss jemand, was ich falsch gemacht habe?

PS. Die UART-Schnittstelle habe ich so schon mal programmiert und da hat 
es funktioniert.

von Falk B. (falk)


Lesenswert?

Obelix schrieb:
> Uart.PNG
> Uart_init.PNG

Was soll das? Normaler Quelltext als Anhang, KURZE Ausschnitte als Text.
1
// das ist ein kurzer Ausschnitt aus dem Quältext

von Stefan F. (Gast)


Lesenswert?

Ich sehe weder eine ISR noch einen Zugriff auf das UART Daten-Register. 
Auch die Konfiguration des UART schaltet keine Interrupts frei. Es 
scheint also wirklich so, dass alleine das Einschalten des UART die 
Fehlfunktion auslöst.

Kann es sein, dass du den RxD Ausgang kurzgeschlossen hast und dadurch 
die Stromversorgung instabil wird?

von Thomas Z. (usbman)


Lesenswert?

du verwendest printf. Das geht ohne Umleitung mit der Original putchar() 
Funktion aus der lib auf die 1. serielle Schnittstelle.
Ich sehe nicht, dass du irgendwo TI = 1 machst. Damit ist die serielle 
ausgabe blockiert! putchar liegt im libordner als Quelltext vor.

von Stefan F. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Kann es sein, dass du den RxD Ausgang kurzgeschlossen hast und dadurch
> die Stromversorgung instabil wird?

Ich meinte natürlich den TxD Ausgang.

von Klaus S. (kseege)


Lesenswert?

In der Initroutine den Timer2 zu starten, dann die Reloadwerte zu setzen 
und das bereits gesetzte Bit nochmal zu setzen deutet zumindest nicht 
auf überlegtes Handeln hin.

Gruß Klaus (der soundsovielte)

von Dieter R. (drei)


Lesenswert?

Obelix schrieb:

> Sobald ich die UART-Schnittstelle initialisiere,
> macht das Programm, was es will.

Was will es denn? Offenbar etwas anderes als du, aber welches Problem 
daraus resultiert, hast du überhaupt nicht geschildert. Sollen wir das 
raten?

von Thomas Z. (usbman)


Lesenswert?

naja der Fehler wird, wie meistens, in den nicht gezeigten Teilen 
liegen.
Folgendes ist mir aufgefallen:
- ich sehe kein #include <stdio.h> //printf() !?
- extern char putchar(char c);     //umgeleitet aufs LCD ?

wo das Ding hängen bleibt sollte der Simulator zeigen können.

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.