Arduino и сетевой контроллер

Тема в разделе "Arduino & Shields", создана пользователем ThePanaceya, 20 сен 2016.

  1. ThePanaceya

    ThePanaceya Нуб

    Всем доброго времени суток!

    Имею проблему с Arduino Leonardo и Ethernet контроллером HunRun HR911105A.

    Я подключил его (сетевой контрллер) по ICSP к плате ардуино, залил скетч getDHCPandDNS с либы EtherCard - на плате светится оранжевый индикатор, а на порту зеленый, также на порту иногда помигивает оранжевый индикатор (идет активность).

    Сам скетч:
    Код (C++):
    // This demo does web requests via DHCP and DNS lookup.
    // 2011-07-05 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

    #include <EtherCard.h>
    #define REQUEST_RATE 5000 // milliseconds

    // ethernet interface mac address
    static byte mymac[] =  { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
    // remote website name
    const char website[] PROGMEM = "google.net";

    byte Ethernet::buffer[700];
    static long timer;

    // called when the client request is complete
    static void my_result_cb (byte status, word off, word len) {
      Serial.print("<<< reply ");
      Serial.print(millis() - timer);
      Serial.println(" ms");
      Serial.println((const char*) Ethernet::buffer + off);
    }

    void setup () {
      Serial.begin(57600);
      while (!Serial) {
        ; // wait for serial port to connect. Needed for native USB port only
      }
      Serial.println("\n[getDHCPandDNS]");

      if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
        Serial.println( "Failed to access Ethernet controller");

      if (!ether.dhcpSetup())
        Serial.println("DHCP failed");

      ether.printIp("My IP: ", ether.myip);
      //Serial.println("My IP: ");
      //Serial.println(ether.myip);
      // ether.printIp("Netmask: ", ether.mymask);
      ether.printIp("GW IP: ", ether.gwip);
      ether.printIp("DNS IP: ", ether.dnsip);

      if (!ether.dnsLookup(website))
        Serial.println("DNS failed");

      ether.printIp("Server: ", ether.hisip);

      timer = - REQUEST_RATE; // start timing out right away
    }

    void loop () {

      ether.packetLoop(ether.packetReceive());

      if (millis() > timer + REQUEST_RATE) {
        timer = millis();
        Serial.println("\n>>> REQ");
        ether.browseUrl(PSTR("/foo/"), "bar", website, my_result_cb);
      }
    }
     
    После загрузки монитор COM-порта показывает только это сообщение:
    Платы подключил по схеме на фото.

    Прошу - пните где ошибся?
     
  2. fogary

    fogary Гик

    Код (C++):
    ether.begin(sizeof Ethernet::buffer, mymac)
    Значение для функции Sizeof разве не должны быть заключены в круглые скобки?
     
  3. ThePanaceya

    ThePanaceya Нуб

    По идее нет. Тем более скетч взят с екзампла (пару строк изменил, но на работу не должно влиять).