Forum: Mikrocontroller und Digitale Elektronik Studio 6 und timer


von Bruno M. (brumay)


Lesenswert?

Hallo,

Ich habe mit Studio 6 einen Studio 4 Code für den ATtiny2313 importiert. 
Auf den ersten Anschein ist auch alles OK. Allerdings kann ich den Timer 
overflow mit F11 (step into) nicht simulieren, d.h. der Interruptsprung 
wird nicht ausgeführt. In Studio 4 ist alles genau zu verfolgen. Wenn 
ich im Studio 6 allerdings einen breakpoint setze, dann kann man sehen, 
daß der Sprung ausgeführt wird.

Hat jemand eine Erklärung, bzw. Abhilfe?

Gruß Bruno

von Oliver S. (oliverso)


Lesenswert?

Bruno M. schrieb:
> Hat jemand eine Erklärung, bzw. Abhilfe?

Ist einfach so. Beim Debuggen mit Einzelschritten werden ISR's im 
Simulator nicht angesprungen.

Abhilfe: Beschwer dich bei Atmel...

Oliver

von Bruno M. (brumay)


Lesenswert?

Hallo Oliver,

das hilft mir zwar nicht weiter, aber danke für die Info.

Gruß Bruno

von Amateur (Gast)


Lesenswert?

Genaugenommen werden ISRs gar nicht angesprungen.

Das "klassische" Anspringen gibt es nur bei Unterroutinen.

Für Testzwecke kannst Du, so Du etwas Platz hast, die ISR doppelt, als 
"echte" Routine, kopieren und dann mit einem call aufrufen.

von Amateur (Gast)


Lesenswert?

Ich vergaß: Beim Kopieren reti gegen ret tauschen.

von Oliver S. (oliverso)


Lesenswert?

Amateur schrieb:
> Für Testzwecke kannst Du, so Du etwas Platz hast, die ISR doppelt, als
> "echte" Routine, kopieren und dann mit einem call aufrufen.

Na ja, das ist dann doch ziemlich "Aua"...

Die ISR'S werden im "Run"-Modus ja angesprungen, das sollte zum Testen 
allemal ausreichen.

Oliver

von Bruno M. (brumay)


Lesenswert?

Amateur schrieb:

> Für Testzwecke kannst Du, so Du etwas Platz hast, die ISR doppelt, als
> "echte" Routine, kopieren und dann mit einem call aufrufen.

Ich muß sagen, so ganz verstanden habe ich nicht wie Du das meinst, aber 
klingt umständlich. Wie Oliver schon sagt, kann man es im Run-Modus ja 
sehen. Wichtig ist nur, daß man es erst einmal weiß und nicht Stunden 
nach einem Fehler sucht.

Bruno

von Stefan E. (sternst)


Lesenswert?

Oliver S. schrieb:
> Bruno M. schrieb:
>> Hat jemand eine Erklärung, bzw. Abhilfe?
>
> Ist einfach so. Beim Debuggen mit Einzelschritten werden ISR's im
> Simulator nicht angesprungen.
>
> Abhilfe: Beschwer dich bei Atmel...

Alternativ könnte man natürlich auch einfach nur ein anderes Verhalten 
einstellen:
Debug -> Options and Settings -> Debugger -> Atmel Debugger
-> Mask interrupts while stepping

von Bruno M. (brumay)


Lesenswert?

Stefan Ernst schrieb:

> Alternativ könnte man natürlich auch einfach nur ein anderes Verhalten
> einstellen:
> Debug -> Options and Settings -> Debugger -> Atmel Debugger
> -> Mask interrupts while stepping

Hallo Stefan, funktioniert super!!

Herzlichen Dank.

Gruß Bruno

von J. T. (chaoskind)


Lesenswert?

Dazu hätte ich auch eine Frage, da ich grad ein ähnliches Problem habe.

Ich weiß, das es im Studio 4 die Möglichkeit gab, einzustellen ob die 
Timer im SingleStep Modus im Hintergrund laufen sollen, oder jeder 
Einzelschritt auch als ein (bzw soviele Takte wie für den Befehl 
notwendig) CPU-Takt angesehen wird. (run timer in stopped mode)

Ich suche diese Option verzweifelt im Studio 6.2. Die Anleitung sagt 
dazu nur, das es im Software-frontend einzustellen sei, aber nicht wo 
und wie???

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.