mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PCA 8574 und Interuptleitung


Autor: Stefanie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe an den PCA8574 I2C-Expander Taster angeschlossen und möchte
mir nun über die Interrupt (an PE6) abfragen, wann ein Taster gedrückt
ist.
Nun wollte ich folgendes Programm testen:

...
/* Auslesen des PCA8574 */

    DDRE  &= ~(1<<DDE6);  /* Pin PE6 als Eingang */
    PORTE |= (1<<PE6);    /* internen Pull-Up an PE6 aktivieren */


    if ((PORTE & (1 << 6)))
  {
...
  }


komischerweise wird bei mir die Schleife immer ausgelesen, egal ob ich
eine Taste drücke, oder nicht.

Was mach ich falsch??

Autor: Daniel M. (sierra)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaub mich zu erinnern, dass der Interrupt-Pin dauerhaft High führt,
bis sich was an den IO-Pins ändert und der PCF ausgelesen wurde, denn da
 führt der Low. Kann aber auch sein dass ich mich irre. Schua lieber
nochma im Datenbaltt nach.

Autor: Stefanie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab das Timing im Datenblatt nicht so ganz verstanden, fand es irgendwie
unlogisch.

Autor: Daniel M. (sierra)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo passt was ich geschrieben hatte. Der Int-Ausgang ist erst dann low,
wenn sich der Zustand an den IOs ändert und geht wieder auf High
zurück, wenn der Chip ausgelesen wurde. Bei deinem Programm müsstest du
entweder  den low-Zustand abfragen oder das Signal invertieren.

Autor: Stefanie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe es invertiert

...
   if (!(PORTE & (1 << 6)))
...

Nun wird die Schleife gar nicht mehr abgefragt, egal ob ich einen
Taster drücke oder nicht

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.