www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR: Unterschiede beim Debuggen und Simulieren


Autor: Zi Ppo (zippo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe folgenden Programmschnipsel geschrieben:

"
clr ar
  sbr ar,1<<ADEN|1<<ADPS2|1<<ADPS0|1<<ADATE
  out ADCSRA,ar
clr ar
  sbr ar,1<<ADTS0
  out SFIOR,ar
clr ar
  sbr ar,1<<REFS1|1<<REFS0|1<<ADLAR
  out ADMUX,ar
  sei

Starten:

    sbi ADCSRA,ADSC

Warten:
    sbic ADCSRA,ADSC
    rjmp Warten

in Zahl,ADCH
"
Das klappt auch alles ganz prima im Simulator...so wie ich mir das 
vorgestellt habe. Nur wenn ich das Programm in meinen Mega32 lade und 
via Debuggmodus (JTAG) mir ansehe was der Chip macht werde ich stutzig. 
Immer wenn ich das Startbit für die Analog-Convertierung starte setzt er 
automatisch das Interrupt-Flag und das Startbit wird gar nicht erst als 
eins angezeigt. Messen tut die Schaltung allerdings!Ich finde meinen 
Fehler einfach nicht! Ich habe schon mal etwas mit dem ADATE und dem 
dazu gehörigen SFIOR-Registern experimentiert aber alles führt zu keiner 
Lösung oder Erklärung.

Kann mir einer die Lösung zu meinem Problem verraten?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Vermutung: der ADC ist eine eigene Hardwareeinheit.
Wenn der gestartet ist, wandelt er eben.

Wenn Deine JTAG-Abfrage jetzt länger braucht, als der ADC zum Wandeln. 
ist der also einfach schon fertig.

Gruß aus Berlin
Michael

Autor: Zi Ppo (zippo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

klingt nicht plausibel, aber wieso verzögert der Debugmode auch die 
Timer extrem? Denn die Timer sind ja ebenfals Hardware-Einheiten oder 
besteht da ein Unterschied?

Gruß

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Simulation ist eben nur eine Simulation... :-/
In der Realität wird auch der Timer einfach weiterlaufen.

> Denn die Timer sind ja ebenfals Hardware-Einheiten oder
> besteht da ein Unterschied?
Ja, es gibt einen gewissen Unterschied zwischen einem Timer und einem 
ADC: Versuch mal mit dem Timer eine Spannung zu wandeln  ;-)

Autor: Zi Ppo (zippo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Komisch...aber wenn das so ist! Ich find die JTAG Schnittstelle sonst 
sehr nützlich (vorallem für mich als Anfänger) aber hier hat sie mich 
mehr verwirrt als erleuchtet ;-)

Danke für eure Hilfe!

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.