Forum: Mikrocontroller und Digitale Elektronik Wie UDR Register im Simulator setzen


von Simulant (Gast)


Lesenswert?

Hi!

Bin gerade dabei mit Assembler ein Programm zu schreiben, was das UART 
eines ATMEGA8 nutzt. Dazu verwende ich das Atmel Studio 6. Assemblieren 
und simulieren funktioniert gut. Nur wie kann ich ein Zeichen über UART 
senden? Ich kann zwar im IOView das RXC Bit im UCSRA setzen, aber das 
UDR wo ja das empfangene Zeichen landet kann ich im Simulator nicht 
verändern.

Wie muss man da rangehen? Macht man das mit diesen Stimuli Files? Wie 
ist denn da die Syntax, oder gibt es dafür einen Generator?

Danke für eure Hilfe

der Simulant

von Karl H. (kbuchegg)


Lesenswert?

Simulant schrieb:

> senden? Ich kann zwar im IOView das RXC Bit im UCSRA setzen, aber das
> UDR wo ja das empfangene Zeichen landet kann ich im Simulator nicht
> verändern.

Aber du liest es irgendwo hin aus. Und dieses Ziel kannst du wieder 
verändern. Das beim Übertragen vom UDR in das Zielregister (Variable) 
nichts schief geht, ich denke das kann man mal getrost voraussetzen.

von Simulant (Gast)


Lesenswert?

Das stimmt. Daran hab ich gar nicht gedacht. Ja, das kann ich schon 
verändern und damit meinen weiteren Ablauf testen. Warum kann man denn 
das UDR nicht bearbeiten? Ist da irgend ein Sicherheitsaspekt dahinter?

So richtig komfortabel ist das nicht.
Leider krieg ich die Hilfe des Atmel Studios nicht auf. Da kommt immer 
nur eine Microsoft Fehlerseite. Online gibt es die Hilfe nicht, oder?
Mich würde schon interessieren, wie das mit den Stimulis funktioniert.
Oder kann man über die Konsole Befehle eingeben?

der Simulant

von Karl H. (kbuchegg)


Lesenswert?

Simulant schrieb:
> Das stimmt. Daran hab ich gar nicht gedacht. Ja, das kann ich schon
> verändern und damit meinen weiteren Ablauf testen. Warum kann man denn
> das UDR nicht bearbeiten?

Wahrscheinlich weil das UDR Register 2 Funktionen hat.
Weist du etwas an das Register zu, dann wird der USART aktiv und 
versendet dieses Byte. Kommt etwas über die USART herein, dann kannst du 
es einmalig vom UDR lesen.

Je nach Operation (schreiben/lesen) erfüllt also das UDR verschiedene 
Aufgaben.

von (prx) A. K. (prx)


Lesenswert?

Genauer gesagt handelt es sich um zwei völlig getrennte Register, die 
nur leider an der gleichen Adresse stehen. In eines davon kann nur 
geschrieben, vom anderen nur gelesen werden. Das macht es Simulatoren 
etwas schwierig.

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.