www.mikrocontroller.net

Forum: Compiler & IDEs Atmega644 AVR-Studio -> ADC-Free Running Mode simulieren


Autor: Martin Zenzes (mzenzes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Wollte nur mal eine kleine Anekdote zum besten geben. Hat mich einen 
geschlagenen Nachmittag gekostet, das herauszufinden.

Und zwar habe eine Initialisierung für einen ATmega644 geschrieben, die 
mir den AD-Wandler im Free-Running mode einstellt. Mehr nicht. Das 
wollte ich testen, mit AVR-Studio.

Hex kompiliert und reingeladen - es funktionierte nicht. Das ADSC-Bit 
war zwar nach dem Init gesetzt, und die erste Wandlung wurde 
durchgeführt. Allerdings wurde es nach dem Interrupt nicht wieder 
neugesetzt (wie es im Free-Running mode sein sollte). Also suchte ich 
stundenlang an der Initialisierung herum, bis ich auf die Idee kam, das 
ganze trotz nciht laufender Simulation mal zu flashen - siehe da, es 
Funktionierte.

Weis jemand von den Profis, warum das so passierte? Gibt es noch mehr 
Ecken, die nicht/schlecht simuliert werden?

Hier noch (für die die es interessiert) die genutzte Initialisierung.
 DDRA  &= ~0xff;
 ADMUX = ( 0 << REFS1) | ( 0 << REFS0 );
 ADCSRA = ( 1 << ADEN ) | ( 1 << ADSC ) | ( 1 << ADATE ) | ( 1 << ADPS2 
) | ( 1 << ADPS1 ) | ( 1 << ADPS0 ) | ( 1 << ADIE );
 ADCSRB = ( 0 << ADTS2 ) | ( 0 << ADTS1 ) | ( 0 << ADTS0 );
Mit besten Grüßen
Martin Zenzes

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze zwar AVR Studio nicht (weil ich keins der Betriebssysteme
benutzen möchte, auf denen es ausschließlich läuft), aber meiner
Meinung nach gibt's irgendwo eine (Hilfe?-) Datei, in der dokumentiert
ist, was alles nicht simuliert wird.

Autor: Martin Zenzes (mzenzes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Hm, in der Hilfe-Datei steht zwar tasächlich was davon, das der 
AD-Wandler zum Teil nicht funktionert. Aber nicht explizit, was genau 
kaputt ist. Naja. Was will man erwarten. Vieles andere funktioniert!

Hab dann noch was gesucht (hätt ich mal vorher tun sollen) und den 
Beitrag "ADC AVR 8535" hier gefunden. Scheint also 
wirklich so wie vermutet zu sein.

Gibt es denn noch andere Hardware-Simulatoren für freiere 
Betriebsysteme? Welche nutzt du? Welches ist zu empehlen? Jedesmal ne VM 
hochzufahren, nur um AVRstudio zu starten ist wirklich etwas mühsam...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin Zenzes wrote:

> Gibt es denn noch andere Hardware-Simulatoren für freiere
> Betriebsysteme?

Es gibt simulavr und simulavrxx.  Zumindest simulavr ist gerade im
Bereich der Peripherie-Simulation völlig unterbelichtet, simulavrxx
soll da zwar besser sein, aber scheitert irgendwie an der
Infrastruktur.  Man muss sich da schon ziemlich tief reinknien, bevor
man es 1.) überhaupt erstmal gebaut bekommt und 2.) dann auch
benutzen kann.

Da man aber die Umgebung des Controllers sowieso nur mittelmäßig
bis gar nicht simulieren kann, benutze ich Simulationen höchstens
mal für paar algorithmische Tests, ansonsten Emulation via JTAG oder
debugWire für die Praxis.

Autor: Martin Zenzes (mzenzes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm. Schade!
Dann werd ich mich mal so weiterbehelfen.
Aber auf jedenfall Danke für die schnellen Antworten!

Autor: Martin Thomas (marathon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin Zenzes wrote:
> Hm. Schade!
> Dann werd ich mich mal so weiterbehelfen.
> Aber auf jedenfall Danke für die schnellen Antworten!

Hallo, kann das Phänomen bestätigen.
Bin an der gleichen Stelle mit einem ATMega168 in der Simulation 
aufgelaufen.
Mein Ausweg:
Habe auf den AVR Simulator V2 (Preview) umgestellt.
Der hat das Problem nicht.

Bin Durch Euren Beitrag drauf gekommen.

Danke
Martin

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin Thomas wrote:

> Habe auf den AVR Simulator V2 (Preview) umgestellt.

Sicher sowieso eine gute Idee.  Der komplette Digitalteil im V2-
Simulator entspricht systembedingt 1:1 der Hardware.  (Nur der
Analogteil muss nach wie vor manuell hinzu gefügt werden.)

Autor: Peter H. (pehe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit VMLab läßt sich der Free Running Mode simulieren.
Aber der Timer-triggered Mode geht dort auch nicht :-(
Und der AVR Simulator V2 kennt meinen Atmega 32 nicht ...
Es ist zum wahnsinnig werden.

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.