Externen Interrupt über AVRSim2 auslösen

Gast #2653340
Hallo,

ich möchte einen externen Interrupt auslösen (INT0 beim ATTINY85) und
habe PORTB mit 0xFF initialiesiert und springe dann auf PORTB = 0 
(fallende Flanke).

Der Port macht exakt das, was ich möchte - ich kriege aber keinen 
externen Interrupt zustande...
Was mache ich falsch?

Konfiguriert habe ich den externen Interrupt so:

/* The falling edge of INT0 generates an interrupt request */
sbi(MCUCR,ISC01);

/* Interrupt Freischaltung INT0 -> Speed */
sbi(GIMSK,INT0);

/* Schaltet den Interrupt frei */
sei();

Könnt ihr mir weiterhelfen?
Gast #2653351
Hi

>ich möchte einen externen Interrupt auslösen (INT0 beim ATTINY85) und
>habe PORTB mit 0xFF initialiesiert und springe dann auf PORTB = 0
>(fallende Flanke).

Bezieht sich die Frage auf das Stimuli-File?

MfG Spess
Gast #2653363
Du hast schon ganz viele Fragen von mir beantwortet, deshalb kein 
Wunder, dass Du durcheinander kommst :-)

Jein. Ich weiss es nicht.
PORTB = 0 funktioniert. Der Simulator macht es -> aber trotz fallender 
Flanke am PIN INT0 springt der Simulator nicht in die Interrupt Routine 
sondern macht einfach weiter. Wie gesagt: den PIN hat er verändert...

Kann es sein, dass ich besser ein Interruptflag setzen sollte, anstatt 
den PORTB zu bewegen?
Gast #2653375
Hi

>Kann es sein, dass ich besser ein Interruptflag setzen sollte, anstatt
>den PORTB zu bewegen?

Hast du es schon mal mit dem Eingangsregister PINB versucht?

MfG Spess
Gast #2653459
So, hoffentlich letzte Frage: :-)

Mein Stimuli File sieht so aus:

#1
PINB = 0xFF
#2000000
PINB = 0x00

Dann kriege ich einen Interrupt nach 2000000 Zyklen. Soweit alles ok.
Jetzt resette ich den Prozessor, Baue evtl. alles nochmal neu, lade das 
Stimuli File nochmal rein (leider muss man das jedes mal machen) und 
lasse das Ding wieder laufen (vorher noch schnell Reset Cycle Counter 
gemacht).

Und siehe da: Er stoppt erst bei 4000000 Zyklen.

und das nächste mal bei 6000000.
Dabei ist die Simulationsdauer nicht etwa konstant, so dass man davon 
ausgehen kann, dass er einfach weiter macht. Nein es dauert jedesmal 
deutlich länger...

Merkt AVR sich da irgendwas oder ist das ein Bug???

Gruß

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.