MCP2515 nur Interrupt wenn Botschaft empfangen wird?

Moin,

ich probiere mich gerade in Interrupts und es klappt auch einigermaßen.

Will mit einem MCP2515 auf eine CAN-Botschaft reagieren. Bin auch soweit, dass der Filter klappt und die Interrupt-Routine aufgerufen wird.

Nun ist aber das Problem, dass der MCP2515 bei diversen Sachen seinen Interrupt-Pin ansteuert, u.a. auch wenn ich eine CAN-Botschaft sende.

Man kann das wohl in dem CANINTE-Register einstellen, auf welchen Interrupt er reagieren soll. Nur mit welcher Bibliothek löse ich das?

Habe die MCP_CAN_lib und die arduino-mcp2515 probiert, beide scheinen das Register nicht anzutasten und bieten nach außen keine Möglichkeit, es zu ändern, wenn ich es richtig sehe.

Wie gehe ich am besten vor?

de50ae:
Man kann das wohl in dem CANINTE-Register einstellen, auf welchen Interrupt er reagieren soll.
...
Habe die MCP_CAN_lib und ... probiert, beide scheinen das Register nicht anzutasten und bieten nach außen keine Möglichkeit, es zu ändern, ...

Nein, ja.

In mcp_can.cpp:

                                                                        /* interrupt mode               */
        mcp2515_setRegister(MCP_CANINTE, MCP_RX0IF | MCP_RX1IF);

Du könntest den Wert in mcp_can_dfs.h mal testweise verändern, ob sich was in Deinem Sinne tut.

Vielen Dank. Eigentlich hat das vorher schon gepasst. Okay er macht auch bei Errors ein Interrupt, aber nicht beim senden.

Keine Ahnung, warum es nicht funktioierte. Hatte es jetzt noch mal getestet und plötzlich funktioniert es.

de50ae:
... und plötzlich funktioniert es.

Das ist eben Elektrick :grin:

Danke für die Rückmeldung!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.