probleme mit mcp23s17

OP #951961
Lesenswert?
• ▲
▼
Hallo,

ich habe 9 Buttons an einen mcp23s17 angehängt, und möchte jetzt 
auslesen welcher button gedrückt wurde.

die buttons hängen an porta[0-7] und portb[0] und werden bei drücken auf 
low gezogen.

aus diesem Grund würde ich gerne einen Interrupt auslösen wenn ein knopf 
gedrückt wurde (also der entsprechende gpio auf null geht), anhand der 
intcap-register könnte ich dann sehen welcher knopf es war.

soweit so gut, nur leider funktioniert das ganze mit der defval-funktion 
nicht, dabei wird portb[0] im intcapb register immer als null angegeben, 
auch wenn ein anderer knopf gedrückt wurde, außerdem werden immer zwei 
interrupts ausgelöst, obwohl ja das genau durch den vergleich mit defval 
vermieden werden sollte.

hier mal meine konfiguration beim start:
1
  
2
mcp_writeByte(mcp_adr[2], 0x0A, 0x4A); // bank=0, mirror_interrupt, hwadress, intpolarity=1
3
mcp_writeByte(mcp_adr[2], 0x08, 0xFF); // GPA0-GPA7 computed against def val
4
mcp_writeByte(mcp_adr[2], 0x09, 0x01); // GPB0 computed against def val
5
mcp_writeByte(mcp_adr[2], 0x06, 0xFF); // GPA0-GPA7 interrupt default val = 1
6
mcp_writeByte(mcp_adr[2], 0x07, 0x01); // GPB0 interrupt default val = 1
7
mcp_writeByte(mcp_adr[2], 0x04, 0xFF); // GPA0-GPA7 interrupt enabled  
8
mcp_writeByte(mcp_adr[2], 0x05, 0x01); // GPB0 interrupt enabled

wenn ich hingegen die defval und intcon register auf den por-werten 
belasse und stattdessen nach jedem knopfdruck den interrupt 2 mal 
abfrage (für low und anschliessendes high nach release des knopfes) geht 
alles perfekt.

hat jemand schonmal ein ähnliches problem gehabt?

Antwort schreiben

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.

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.