Forum: Mikrocontroller und Digitale Elektronik UART am AT90CAN128


von John (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe einen AT90CAN128 auf einem STK500 und versuche mich an der UART 
Schnittstelle.

Mein Prog siehe Anhang. Wenn ich in die ISR nur


UDR0 = UDR0;


schreibe habe ich ein tolles echo. Also HW so weit OK.

Jetzt möchte ich aber eine Zeichenkette empfangen und in ein Array 
speichern. Schon klappts nicht mehr !
Es scheint so, als würde nicht mehr in die while Schleife 
zurückgesprungen. Im Debugger sehe ich, dass nach dem 2. Zeichen nichts 
mehr empfangen wird.

Kann jm. helfen ?

Mein Ziel ist es Zeichen bis zu \n zu empfangen, diese in einem string 
zu bekommen und diesen auswerten.

in der while möchte ich die Zeichenkette wieder ausgeben. (nur zum 
testen)

Bestimmt gibt es eine bessere Lösung. In diesem Fall würde ich meine 
natürlcih ersetzen.


Danke

von tex (Gast)


Lesenswert?

womit taktest Du Deinen Prozessor?

von tex (Gast)


Lesenswert?

und
int char_count=0; sollte besser
volatile int char_count=0;
heissen, wenn Du sie im Interrupt hochzählst, sonst weiss das main 
nicht, dass sie sich in der ISR geändert hat

von john (Gast)


Lesenswert?

Quarz mit 7,3728 MHz ( siehe txt.-File )

von John (Gast)


Lesenswert?

Ja, OK, löst ein Problem, welches ich bis jetzt noch nicht hatte.

Danke schon mal !

von John (Gast)


Lesenswert?

... aber mein eigentliches Problem ist damit noch nicht gelöst.


Hat denn jemand ne Idee oder ne gute Lösung ?

von dummy (Gast)


Lesenswert?

>char str_complete...

Das muss auch volatile sein.
Und lies in der ISR UDR0 nicht zweimal.
Benutze data.

von John (Gast)


Lesenswert?

Ich werd verrückt !!!

Jetzt gehts !!!

Ist ja aber auch klar. Eigentlich dummer Fehler.

Danke !!!!!!!!!!!!!!

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.