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?
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
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ß
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 ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.