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


von Zi P. (zippo)


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?

von Michael U. (amiga)


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

von Zi P. (zippo)


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ß

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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  ;-)

von Zi P. (zippo)


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!

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.