Hardware Interrupt Pin of W5500 is a falling edge. If an interrupt occurs in HIGH state, it is converted to LOW, and it is converted to HIGH when you clear the interrupt.
I got it how it works but interrupt pin stays at high. I want to get hw interrupt for receive moment at UDP…
I’m not sure this init is true which is showing below.
To generate an interrupt in the socket’s recv timing, masking is required in the sn_imr and simr registers.
If udp socket is socket 0, set SIMR (0x01).
This is correct masking to get the recv interrupt.
w5500.result = socket(w5500.socketNumber, Sn_MR_UDP, w5500.localPort, 0); // 0 -> No flag need at UDP
setINTLEVEL(500);
setSIMR(0x01);
setSn_IMR(w5500.socketNumber, 0x04);