www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVRStudio Simulator + USART (Atmega16)


Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
N'abend!

Bevor nun die ersten wohl berechtigterweise gleich mit den Köpfen 
schütteln... die Such Funktion war nicht so ergiebig wie ich es gern 
gehabt hätte.

Also, mir ist nicht so ganz klar warum der AVR Studio Simulator nicht 
das tut was er sollte.

Hier nen kleiner Auszug aus dem Code:

---------------------------------------------------
UBRRH = UBRR_VAL;
UCSRA = ( 1 << RXEN );
UCSRC = (1<<URSEL) | (1<<USBS) | (3<<UCSZ0);

...

PORTC |= USART_Receive();

...

uint8_t USART_Receive()
{
   while (!(UCSRA & (1<<RXC)))   // warten bis Zeichen verfuegbar
    return UDR;         // Bit zurückgeben
}
----------------------------------------------------

Theoretisch sollte doch an PortC das erste Bit gesetzt sein, wenn ich in 
der while Schleife das UDR Bit und das RXC Bit auf 1 setze?

Warum tut er das nich?

Vielen Dank im vorraus! :)

Flo

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

AVR-Studio->Help->Simulator->Known Issues

MfG Spess

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"The UART/USART UDR register can only be modified from the application. 
Input via stimuli files or by modifying the I/O view etc is not 
possible.

Terminal I/O window is not implemented. This feature is available in AVR 
Studio 3.xx."

Ah ok, danke :).

Hätte ich allerdings gleich mal noch die nächste Frage. Im Tutorial und 
an mehreren anderen Stellen wird das Einlesen von einem "Zeichen" immer 
durch diese while Schleife realisiert.

Was gibt denn dieses UDR genau zurück? Ein Bit? Ein Byte? Das Byte das 
zwischen Start/Stop Bit(s) steht?  Konnte dazu auch im Datenblatt nix 
finden.

Und Danke im vorraus nochmal!

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja, macht es u.U. Sinn für solche Tests aufs AVRStudio 3.xx 
umzusteigen?

Ist es sehr aufwändig sich in andere IDEs die das unterstützen 
einzuarbeiten?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI

>Achja, macht es u.U. Sinn für solche Tests ...

Nein. Die AVR-Studios 3.xx waren in der Simulation auch nicht besser. 
Als notorischer Assemblerprogrammierer kann ich dir auch nur bedingt 
helfen.

Der Simulator reagiert zumindest auf ein manuelles Setzen der 
entsprechenden Bits richtig.

Ich würde kannst du an der Stelle :
>while (!(UCSRA & (1<<RXC)))   // warten bis Zeichen verfuegbar

einen Breakpoint setzen und dann die Bits setzen

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.