mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pin Change Interrupt im ATtiny12


Autor: Philipp Sibler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich bin ein Anfänger in Sachen Mikrocontroller.  Vielleicht kann mir 
jemand bei folgendem Problem helfen:

In meinem Assemblerprogramm für den ATtiny12 möchte ich mit dem 
PinChange-Interrupt in eine Serviceroutine verzweigen. Im GIMSK habe ich 
den PinChange-Interrupt aktiviert. Wenn sich jetzt in der Simulation am 
PortB etwas ändert, macht er einfach unbeirrt weiter und springt nicht 
auf 0x002.

Was habe ich falsch gemacht?

Philipp

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der PinChange Interrupt wird im Simulator von AVR Studio nicht unstützt.

Autor: Philipp Sibler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antwort, dann werd ich es anders probieren!

Philipp

Autor: Diana (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, das ist ein alter Thread, deshalb wollte ich fragen, ob das immer 
noch stimmt.

Ich möchte im C-Code mit Atmega 2560 einen PinChangeInterrupt 
durchführen, aber der Simulator vom AVR-Studio 4 (mit SP1) sringt 
einfach nicht in die Routine!

Wird das mittlerweile unterstützt?

Codeausschnitt:
sei();            //enable all interruots
PCICR = (1 << PCIE1);     //enable interrupts PCINT8:15
PCMSK1 = ( 1 << PCINT15);   //mask external interrupt to enable PCINT15

ISR(PCINT1_vect) //PinCange at RXE-Pin (PJ6/PCINT15): User want to say 
sth.
{...
}
Vielen Dank, Diana

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann leider nichts zum Simulator sagen, aber du solltest erst den 
Interrupt konfigurieren und aktivieren und danach erst sei() ausführen. 
Sonst kann es passieren, dass du beim Interrupt einstellen diesen schon 
auslöst.

Sebastian

Autor: Diana (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, das ist mir gar nicht aufgefallen, vielen Dank für die Info, ich 
habe es gleich geändert, aber es funktioniert immer noch nicht.

Dann werde ich wohl auf die Hardware warten müssen, wenn der Simulator 
das nicht kann.

Ich hab später im Code noch weitere Initialisierungen von Interrupts, 
muss ich da vorher eigenlich alle Interrupts global deaktivieren, damit 
diese Interrupts nicht dabei ausgelöst werden!

Vielen Dank für die schnelle Antwort!Diana

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.