Hello to all
I enabled socket 2 interrupt, but in ISR the wizchip_getinterrupt () function returns 0xfff0.
I have enabled the interrupt using the following commands:
setIR(0xf0); //clear IR register
setSIR(0xff); //clear SIR register
setIMR(0); //Disable all INTERRUPTS
setSIMR(0); //Disable all socket INTERRUPTSwizchip_setinterruptmask(IK_SOCK_2 ); // enable socket 2 interrupt
setSn_IMR(CLIENT_SOCKET,Sn_IR_CON); // enable socket 2 Sn_IR_CON interrupt
and my ISR is :
uint16_t int_src ;
uint8_t sn_int_src = 0;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(HAL_GPIO_ReadPin(WIZ_INT_GPIO_Port , WIZ_INT_Pin) == GPIO_PIN_RESET){
int_src = wizchip_getinterrupt();
if(int_src == IK_SOCK_2){
sn_int_src = getSn_IR(CLIENT_SOCKET) & Sn_IR_CON;
if(sn_int_src == Sn_IR_CON ){
setSn_IR(CLIENT_SOCKET, Sn_IR_CON);
}
wizchip_clrinterrupt(IK_SOCK_2);
}
setIR(0xf0);
setSIR(0xff);
}
}
But the variable int_src most of the time has the value 0xfff0. Sometimes it’s 0x0400 and it works fine, but most of the time it’s 0xfff0 which is wrong.