Forum: Mikrocontroller und Digitale Elektronik UART URSEL ?


von John (Gast)


Lesenswert?

Prozessor: ATMega32,
Debugger: JTAGICE MKII
IDE: Atmel Studio 6.2

Mein Problem, ich bekomme mit der allgemein bekannten Zeile:

UCSRC = (1<<URSEL) | (1<<UCSZ0) | (1<<UCSZ1);

das Register nicht beschrieben.

Ich habs sonst auch immer so gemacht, aber irgendwie geht es nicht ?!


Kann jemand weiter helfen !?

von holger (Gast)


Lesenswert?

>das Register nicht beschrieben.
>
>Ich habs sonst auch immer so gemacht, aber irgendwie geht es nicht ?!

Doch das geht so. Vergiss den Simulator oder was immer
du machst um das Register zurückzulesen.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

John schrieb:
> Mein Problem, ich bekomme mit der allgemein bekannten Zeile:
>
> UCSRC = (1<<URSEL) | (1<<UCSZ0) | (1<<UCSZ1);
>
> das Register nicht beschrieben.

 Schreiben ist OK, aber lessen must du so:
  in r18,UBRRH
  in r18,UCSRC
 Erst dann kriegst du UCSRC.

von John (Gast)


Lesenswert?

Danke für die Hinweise,

ich lese das Register einfach nur mit dem Debugger aus, also setzte mir 
nen Breakpoint an der entsprechenden Stelle und schaue dann ob es 
gesetzt wird...

holger schrieb:
> Doch das geht so. Vergiss den Simulator oder was immer
> du machst um das Register zurückzulesen.


der Fehler liegt dann wohl woanders..


Danke !

von Uwe (Gast)


Lesenswert?

Hallo John,

einige würden nun schreiben vor dem Bildschirm.

Ich verwende nie einen Debugger, warum auch ?

Man kann Programm nach Datenblatt und richtigem Codieren in C "fast" 
fehlerfrei schreiben.

Eine Durchsicht des ASM Anweisungen zeigt dann die Kodierung und ob man 
die richtigen Register und Bits verwendet hat.

Alles natürlich ganz dicht am Datenblatt.

Darüber hinaus kann man Werte und Meldungen über serielle Schnittstelle 
ausgeben.

Viel Erfolg.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Marc Vesely schrieb:
> Schreiben ist OK, aber lessen must du so:
>   in r18,UBRRH
>   in r18,UCSRC
>  Erst dann kriegst du UCSRC.

 Mit diesen beiden übereinander gelegten Registern ist ATMEL Debugger
 überfördert.

holger schrieb:
> Doch das geht so. Vergiss den Simulator oder was immer
> du machst um das Register zurückzulesen.

 Genau.

Uwe schrieb:
> Darüber hinaus kann man Werte und Meldungen über serielle Schnittstelle
> ausgeben.

 Die sicherste Lösung.

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.