abobija/esp-idf-rc522

Use interrupts instead of hot idling

danielbuechele opened this issue · 1 comments

Currently, when waiting for a tag, the task is put to sleep for 100ms and then activated again. The MFRC522 module has a IRQ pin and we could use an interrupt when the tag is present.

Hi @danielbuechele

Thank you for the comment. I recall from past research that implementing interrupt-driven tag detection with the MFRC522 can be challenging due to certain limitations, so I initially opted for polling. I will revisit the details to assess if there's a viable way to integrate interrupt handling in the current setup.

👋 Edit:

I checked into using interrupts with the MFRC522, and here’s why polling is required:

Although the MFRC522 supports interrupts (like RxIRq), they only trigger after the reader receives a response from a card. For the card to respond, the reader must first send commands to initiate communication. Since the card doesn’t send data on its own, these commands need to be sent periodically, effectively meaning polling is still necessary.

Hope this clarifies!