Hi Leute,
ich habe nach längerer AVR-Abstinenz ein Programm geschrieben,
um den externen Interrupt INT1 auf einem ATmega88PA zu testen.
Leider funktioniert mein Programm im AVR Studio 6 Simulator nicht.
Meine Selbstdiagnose lautet: Brett vor'm Kopf - bin irgendwie
blind und finde den Fehler nicht.
Vielleicht ist das für einen Kenner unter Euch ja eine Sache
von 2 Sekunden, daher mein Hilfegesuch.
Viele Grüße
Igel1
PS: sorry - Code könnte schöner formatiert sein ...
1
/*
2
* Test external Interrupt INT1
3
*
4
* When INT1 (=PD3) is rising from 0 to 1, an interrupt shall be triggered
5
* The level change is realized by setting/resetting PD3 within the program
6
*
7
* V0.01 Doen't work - simulator doesn't branch into ISR (interrupt service routine)
Andreas S. schrieb:> * V0.01 Doen't work - simulator doesn't branch into ISR (interrupt> service routine)
Also ich kann das simulieren, AVR Studio 4.19, und es wird in die Int1
ISR eingesprungen.
Beiläufig, das hier:
1
ldi akku,0x00
2
out EIFR, akku
ist sinnlos, Flag-Bits werden durch Schreiben einer 1 gelöscht.
Hab das Teil in Atmel Studio 6.2 geladen.
Im Simulator: nichts.
Das EIFR Bit wird korrekt gesetzt, aber der Interrupt Vektor wird nicht
angesprungen.
Ich weiss schon, warum mir das alte AVR Studio lieber ist.
S. Landolt schrieb:>> Hab das Teil in Atmel Studio 6.2 geladen.> Und was passiert, wenn Sie das ".cseg" an die richtige Stelle setzen?
Hab ich probiert. Kein Unterschied.
> Ich weiss schon, warum mir das alte AVR Studio lieber ist.
Und ich weiß schon, warum ich so selten den Simulator benutze - hab'
genug mit meinen eigenen Fehlern zu tun, fremde brauche ich nicht.
Karl Heinz schrieb:> Hab das Teil in Atmel Studio 6.2 geladen.
Version 6.1 funktioniert auch nicht, auch wenn das .cseg verschoben
wird. Version 4.18 (nicht 4.19) funktioniert hingegen. Und ist auch
nicht so elend ziagat.
Aaaaaargh.
Man muss mittels F5 den Simulator laufen lassen. Im Einzelschrittbetrieb
mittels F10 oder F11 funktioniert das nicht.
Also eines muss ich schon sagen.
So gerne ich die AVR auch habe, aber die Qualität der
Entwicklungsumgebung könnte besser sein.
Karl Heinz schrieb:> Man muss mittels F5 den Simulator laufen lassen.
Und auf dem linken Fuß stehen, sich mit der rechten Hand an das linke
Ohrläppchen greifend.
es gibt eine Option im Atmel Studio.
Zu finden unter dem Menüpunkt "Tools" | "Options"
und dann im Dialog weiter wie im Bild gezeigt.
"Mask interrupts while stepping"
Die ist defaultmässig auf 'true' gestellt. Wer macht den auch sowas.
IMHO der falsche Default.
Wow - Leute, das hätte ich jetzt nicht gedacht:
In dieser kurzen Zeit haben sich tatsächlich 3 von Euch
(MWS, Detlef und Karl-Heinz) die Mühe gemacht, meinen
Code in Ihrem jeweiligen Simulator laufen zu lassen ...
Da bleibt einem wirklich die Spucke weg - dickes Dankeschön
an die 3 Helden! (die mir nebenbei auch noch nette Tipps
spendiert haben)
Und über das Ergebnis bin ich ebenfalls erstaunt: Vor Jahren
bin ich mit dem alten AVR Studio schon einmal in eine
Simulator-Falle getappt - hätte nicht gedacht, daß
die Software nach so vielen Jahren immer noch so buggy ist.
1000 Dank aber nochmals für Eure Unterstützung!
Viele Grüße
Igel1
PS: Ich habe mein Uralt AVR Studio 4.19 Build 716 gerade einmal
ausgegraben
Ergebnis: mein Programm funktioniert dort!
Uff - während ich getextet habe, hat Karl Heinz noch einen drauf gelegt:
Da kann ich nur sagen:
Hier kannst Du wirklich was erleben, in diesem Forum !
@Karl Heinz: unglaublich! Wie bist Du darauf nur gekommen ?!
Danke - jetzt funktioniert's auch in meinem AVR Studio 6.2.1563 (SP 2).
Hamma!
Viele Grüße
Igel1
Andreas S. schrieb:> Simulator-Falle getappt - hätte nicht gedacht, daß> die Software nach so vielen Jahren immer noch so buggy ist.
Wie sich rausgestellt hat, ist das kein Bug.
Es ist nur ein Feature, dass meiner Meinung nach unsinnigerweise nach
der Installation aktiviert ist. Denn die Erwartungshaltung der meisten
dürfte wohl sein, dass sich Single Step und Run nur dadurch
unterscheiden, dass ein Run mehr oder weniger einfach nur ein Single
Step nach dem anderen ist.
Warum man beim Single Steppen auftretende Interrupts nicht ausgeführt
haben will, entzieht sich meiner Phantasie.
Andreas S. schrieb:> Hier kannst Du wirklich was erleben, in diesem Forum !> @Karl Heinz: unglaublich! Wie bist Du darauf nur gekommen ?!
Die Annahme war, dass Atmel doch wohl nicht so einen simplen Bug im
Simulator haben wird. Also hab ich mal angefangen zu googeln mit
unterschiedlichen Stichworten.
Und nach einige Web Sites hatte ich dann einen Treffer, der mir weitere
Stichworte für Google geliefert hat :-)
Die Sache mit dem F5 hab ich zufällig beim Probieren im Studio entdeckt.
@Karl Heinz:
Scharf und richtig kombiniert (wie wir im Nachhinein nun alle wissen).
Danke für Dein Engagement!
1000 Dank aber auch an alle anderen, die sich hier bemüht haben.
Das hätte mich sicher Tage gekostet, weil ich das Problem ausschließlich
vor der Tastatur vermutet hatte ...
Habt noch einen schönen Abend!
Viele Grüße
Igel1