Autor
|
Tema: RC522 y Arduino UNO/MEGA usando IRQ (interrupts) (Leído 7,065 veces)
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
Hola, estoy aprendiendo Arduino. Tengo un lector RFID modelo RC522 y lo quiero usar con tarjetas. Todos, absolutamente todos los ejemplos que he encontrado son usando el metodo polling, es decir meter una rutina que constantemente esté verificando si se leyo algo, dentro de la funcion loop del programa Arduino. Mi duda es si algun heroe sin capa podria darme un ejemplo basico de como usar el pin IRQ del RC522 asi poder manejar la lectura con las interrupciones de mi Arduino. Tambien tengo un arduino Mega como opcion B
|
|
« Última modificación: 6 Junio 2020, 07:25 am por [u]nsigned »
|
En línea
|
No hay atajo ante la duda, el misterio se hace aquí... Se hace carne en cada uno, el misterio es existir!
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
Hola, estoy aprendiendo Arduino. Tengo un lector RFID modelo RC522 y lo quiero usar con tarjetas. Todos, absolutamente todos los ejemplos que he encontrado son usando el metodo polling, es decir meter una rutina que constantemente esté verificando si se leyo algo, dentro de la funcion loop del programa Arduino. Mi duda es si algun heroe sin capa podria darme un ejemplo basico de como usar el pin IRQ del RC522 asi poder manejar la lectura con las interrupciones de mi Arduino. Tambien tengo un arduino Mega como opcion B Que tal hommie? no tengo esa tarjeta si quiero es la PN532, por lo visto en el loop debes tener un condicional y con una variable booleana volatile, que sete a false una vez entrado en ese condicional.#include <SPI.h> #include <MFRC522.h> #include <String.h> #define RST_PIN 8 #define SS_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance volatile bool cardPresent; //variable como flag void setup() { Serial.begin(9600); // Initialize serial communications with the PC while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) SPI.begin(); // Init SPI bus mfrc522.PCD_Init(); // Init MFRC522 mfrc522.PCD_WriteRegister(MFRC522::ComIrqReg, 0x80); //Clear interrupts mfrc522.PCD_WriteRegister(MFRC522::ComIEnReg, 0x7F); //Enable all interrupts mfrc522.PCD_WriteRegister(MFRC522::DivIEnReg, 0x14); Serial.println(F("Ready...")); attachInterrupt(0, isr, RISING); } void loop() { if (cardPresent) { Serial.println(F("Interrupt")); mfrc522.PCD_WriteRegister(MFRC522::ComIrqReg, 0x80); //Clear interrupts cardPresent = false; } } void isr() { cardPresent = true; } }
Pasate por aqui https://arduino.stackexchange.com/questions/9656/using-interrrupts-with-rc522Y sino funciona, por educacion aunque sea, ayuda con el codigo LMAOOO si quieres.
|
|
« Última modificación: 9 Junio 2020, 10:51 am por rub'n »
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
Mañana lo pruebo. Pero Ya habia visto ese ejemplo y creo que seguiria siendo polling, ademas ahi no usan el puerto IRQ del RC522
|
|
|
En línea
|
No hay atajo ante la duda, el misterio se hace aquí... Se hace carne en cada uno, el misterio es existir!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Mega Diccionarios WPA 2 - Psk
Wireless en Linux
|
Rottweilerv8
|
2
|
6,186
|
25 Diciembre 2010, 21:22 pm
por cotiess
|
|
|
Mega problema con PC
Windows
|
topevigo
|
3
|
2,403
|
8 Enero 2012, 09:29 am
por Randomize
|
|
|
Stream Mega en Php ?
PHP
|
Weeken
|
5
|
6,619
|
22 Febrero 2013, 07:10 am
por engel lex
|
|
|
Mega Stream, un sitio web no oficial que permite hacer streaming de Mega
Noticias
|
wolfbcn
|
0
|
2,443
|
22 Julio 2013, 12:51 pm
por wolfbcn
|
|
|
Mega no me descarga.
Dudas Generales
|
NikNitro!
|
4
|
4,971
|
25 Agosto 2014, 01:28 am
por daryo
|
|