diff options
author | Damien George <damien.p.george@gmail.com> | 2014-09-01 00:09:16 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-09-01 22:52:38 +0100 |
commit | 9091e84454b10f97dd583d9c2c30f75024453745 (patch) | |
tree | 8719a399d3a5f0a15657bb5071fcf63ed6870790 | |
parent | 7da9145e470fd223084f673dc4727ec08a7789dc (diff) | |
download | micropython-9091e84454b10f97dd583d9c2c30f75024453745.tar.gz micropython-9091e84454b10f97dd583d9c2c30f75024453745.zip |
drivers, wiznet5k: Add HAL_Delay(1) to "infinite" loops.
-rw-r--r-- | drivers/wiznet5k/ethernet/socket.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/wiznet5k/ethernet/socket.c b/drivers/wiznet5k/ethernet/socket.c index 79e082cb51..20877c50e0 100644 --- a/drivers/wiznet5k/ethernet/socket.c +++ b/drivers/wiznet5k/ethernet/socket.c @@ -51,6 +51,8 @@ //***************************************************************************** #include "socket.h" +extern void HAL_Delay(uint32_t); + #define SOCK_ANY_PORT_NUM 0xC000; static uint16_t sock_any_port = SOCK_ANY_PORT_NUM; @@ -225,6 +227,7 @@ int8_t connect(uint8_t sn, uint8_t * addr, uint16_t port) #endif return SOCKERR_TIMEOUT; } + HAL_Delay(1); } #if _WIZCHIP_ == 5200 // for W5200 ARP errata setSUBR((uint8_t*)"\x00\x00\x00\x00"); @@ -345,6 +348,7 @@ int32_t recv(uint8_t sn, uint8_t * buf, uint16_t len) } if((sock_io_mode & (1<<sn)) && (recvsize == 0)) return SOCK_BUSY; if(recvsize != 0) break; + HAL_Delay(1); }; if(recvsize < len) len = recvsize; wiz_recv_data(sn, buf, len); @@ -392,6 +396,7 @@ int32_t sendto(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t if(getSn_SR(sn) == SOCK_CLOSED) return SOCKERR_SOCKCLOSED; if( (sock_io_mode & (1<<sn)) && (len > freesize) ) return SOCK_BUSY; if(len <= freesize) break; + HAL_Delay(1); }; wiz_send_data(sn, buf, len); @@ -421,6 +426,7 @@ int32_t sendto(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t return SOCKERR_TIMEOUT; } //////////// + HAL_Delay(1); } #if _WIZCHIP_ == 5200 // for W5200 ARP errata setSUBR((uint8_t*)"\x00\x00\x00\x00"); |