mikrocontroller.net

Forum: Compiler & IDEs PCINT Interrupt mega88


Autor: KernelPanic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Ich verstehe die PCINT interrupts nicht wirklich...
Die Pins eines mega88 haben im Datenblatt alle die PCINT Eigenschaft. 
Wie kann ich das denn nun in meinem Program verwenden?
Ich habe ja nur PCINT0-PCINT2 zur verfügung. Ich müsste aber auf PB4 ein 
Interupt bekommen. Ist das irgendwie möglich?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So schwer zu verstehen? PCINT0..2 sind die Register, jedes davon hat 8 
Bits. Ergibt insgesamt 24 Bits, mehr als genug für den Mega88.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Pin Change Interrupts sind in Gruppen mit den entsprechenden Pins 
verbunden. Jeder der drei Pin Change Interrupts ist für einen kompletten 
Port zuständig (PCIF0 für die Pins PCINT0...7, also Port B, PCIF1 für 
PCINT8...14, also Port C, PCIF2 für PCINT16...23, also Port D). Mit den 
PCMSK-Registern (Pin Change Interrupt Mask Register) kann man die 
einzelnen Pins für den dazugehörigen Interrupt aktivieren. Wenn Du also 
an PB4 einen Pin Change Interrupt haben willst, musst Du zunächst mal 
den Pin Change Interrupt 0 freigeben (PCIE0) und zusätzlich im PCMSK0 
das zu PB4 gehörige Bit PCINT4 setzen.

Autor: KernelPanic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke.
        PCICR |= (1<<PCIE0);
  EICRA |= (1<<ISC10) | (1<<ISC00);
  PCMSK0 |= (1<<PCINT4);
So müsste das doch jetzt funktionieren, oder?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> EICRA |= (1<<ISC10) | (1<<ISC00);
Das hat mit den Pin Change Interrupts nichts zu tun, das ist nur für die 
externen Interrupts. Die Pin Change Interrupts können nicht 
flankenselektiv ausgelöst werden. Die Flankenerkennung muss in Software 
gemacht werden. Der Rest müsste aber stimmen.

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.