Forum: Compiler & IDEs AVR Simulator - Pin Change Interrupt simulieren


von Marcel (Gast)


Lesenswert?

Moin zusammen,
ich möchte gerne meinen Pin Change Interrupt genauer mit dem AVRStudio 
unter die Lupe nehmen, doch wenn ich Step by Step debugge, und dann 
einen Pin per Mausklick am PinX verändere, so springt er nicht in die 
Routine. Was mache ich falsch?

(Wenn ich das Programm auf den Controller schiebe, so wird sie dort 
angesprungen)

Hinweis: Nutze AVR-Studio 4.17, µC ist der MEGA169


Hab ne gute Erklärung für den AVR Simulator im Internet gefunden, doch 
wurde dort leider nicht mein Problem aufgegriffen

Für die dies interessiert ;)

http://www2.tech.purdue.edu/ecet/courses/ecet309/Reference_Materials/Simulation_AVR_Studio_4.pdf

Danke im Vorraus

Marcel

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Im Artikel AVR-Simulation sind ein paar Methoden genannt, wie man 
externe Stimuli in den AVR Studio Simulator einspeist.

Danke für den Link, der ist jetzt auch im Artikel :)

Wenn du ein Minimalbeispiel hast, schaue ich mir das auch mal an.

von Marcel (Gast)


Lesenswert?

Stefan B. schrieb:
> Danke für den Link, der ist jetzt auch im Artikel :)

Ich freu mich! ;)

Meinste das Tool HAPSIM?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ja oder Stimuli

von Marcel (Gast)


Lesenswert?

Stefan B. schrieb:
> Ja oder Stimuli

Ah da haste Recht!
Stimuli ist nicht so mächtig und schneller und besser für meine 
Bedürfnisse

Merci beaucoup :) - Schade dass dies nicht direkt im AVR--Studio 
implementiert ist :(

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Stefan B. schrieb:
> Danke für den Link, der ist jetzt auch im Artikel :)

Der ist aber ziemlich alt.  Mittlerweile sollte man, soweit möglich,
den "Simulator V2" (oder wie er heißt) dem alten Simulator
vorziehen, denn er ist logisch eine 1:1-Umsetzung des tatsächlich
implementierten Digitalteils im AVR.

von Jan (Gast)


Lesenswert?

Hallo Marcel

Wenn du dein Programm mit AVR-Studio simulierst kannst du die Register 
auf der rechten Seite des Bildschirms manuell setzen. Schau einfach 
welcher Register bei dem Interrupt auf 1 gesetzt wird und setze ihn dann 
manuell.

Ob es jetzt beim Pin Change Interrupt auch funktioniert müsstest du 
ausprobieren.

Gib mal laut obs funktioniert hat.

mfg Jan

von Jan (Gast)


Lesenswert?

Hmm hab gerade nochmal geschaut du kannst net über deine Registeransicht 
im AvrStudio das EIFR register net verändern. Aber setz doch einfach ne 
globale Var die im main while loop abgearbeitet wird damit kannst du das 
Programm testen, denn du kannst im Watch fenster die Variable ja setzen.


mfg Jan

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.