Folosesti libraria standard Ethernet de la Arduino si iti iei setarile de retea prin DHCP?  Vrei sa reinitializezi obiectul de ethernet folosind ethernet.begin() in sketch-ul tau?

O sa realizezi ca la un moment dat dupa mai multe reinitializari, sketch-ul de Arduino se va bloca. Acest lucru se intampla deoarece la fiecare initializare a ethernetului vei pierde in jur de 100b de  memorie RAM si cum aceasta resursa este foarte limitata la Arduino cand ajunge la valori critice face ca programul sa se reseteze sau sa se blocheze. Codul face urmatorii pasi:

int EthernetClass::begin(uint8_t *mac_address)

{
_dhcp = new DhcpClass();


Se observa ca libraria nu sterge sau refoloseste vechiul element _dhcp, ceea ce face ca se aloce memorie de fiecare data pentru un nou element.

Pentru a rezolva aceasta problema se poate schimba codul de mai sus cu:

delete _dhcp;
_dhcp = new DhcpClass();

 CreativeChip Ethernet