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
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
Ja, OK, löst ein Problem, welches ich bis jetzt noch nicht hatte. Danke schon mal !
... aber mein eigentliches Problem ist damit noch nicht gelöst. Hat denn jemand ne Idee oder ne gute Lösung ?
>char str_complete...
Das muss auch volatile sein.
Und lies in der ISR UDR0 nicht zweimal.
Benutze data.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.