Arduino mega и ENC28J60

Тема в разделе "Проводная и беспроводная связь", создана пользователем serzh, 24 авг 2017.

  1. serzh

    serzh Нуб

    прочитал много статей по как подключить езернет и ардуино, хочу создать веб страницу для управления умным домом. везде используются библиотеки #include «etherShield.h»и #include «ETHER_28J60.h». скачиваю их из примеров, скачивал разные. в итоге ардуино IDE выдает ошибки при компиляции скетча, связанные с библиотеками. как быть?где взять рабочие библиотеки или создать самому? как подключить данный девайс?
     
  2. NikitOS

    NikitOS Король шутов Администратор

    Что за ошибки???!
     
  3. serzh

    serzh Нуб

    Arduino: 1.8.4 Hourly Build 2017/08/18 04:33 (Windows 7), Плата:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    ВНИМАНИЕ: Категория '' в библиотеке UIPEthernet не является действительной. Установка на 'Uncategorized'
    In file included from C:\Users\Серж\Documents\Arduino\libraries\etherShield/etherShield.h:25:0,

    from C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:24:

    C:\Users\Серж\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: 'prog_char' does not name a type

    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    In file included from C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:24:0:

    C:\Users\Серж\Documents\Arduino\libraries\etherShield/etherShield.h:34:65: error: 'prog_char' does not name a type

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp: In member function 'char* ETHER_28J60::serviceRequest()':

    C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:117:121: error: no matching function for call to 'EtherShield::ES_fill_tcp_data_p(uint8_t [501], int, const char*)'

    plen=es.ES_fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n<h1>200 OK</h1>"));

    ^

    C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:117:121: note: candidate is:

    In file included from C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:24:0:

    C:\Users\Серж\Documents\Arduino\libraries\etherShield/etherShield.h:34:13: note: uint16_t EtherShield::ES_fill_tcp_data_p(uint8_t*, uint16_t, const int*)

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Users\Серж\Documents\Arduino\libraries\etherShield/etherShield.h:34:13: note: no known conversion for argument 3 from 'const char*' to 'const int*'

    C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:118:60: error: no matching function for call to 'EtherShield::ES_fill_tcp_data_p(uint8_t [501], uint16_t&, const char*)'

    plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<h1>A</h1>"));

    ^

    C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:118:60: note: candidate is:

    In file included from C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:24:0:

    C:\Users\Серж\Documents\Arduino\libraries\etherShield/etherShield.h:34:13: note: uint16_t EtherShield::ES_fill_tcp_data_p(uint8_t*, uint16_t, const int*)

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Users\Серж\Documents\Arduino\libraries\etherShield/etherShield.h:34:13: note: no known conversion for argument 3 from 'const char*' to 'const int*'

    C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:131:97: error: no matching function for call to 'EtherShield::ES_fill_tcp_data_p(uint8_t [501], int, const char*)'

    plen=es.ES_fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n"));

    ^

    C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:131:97: note: candidate is:

    In file included from C:\Users\Серж\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:24:0:

    C:\Users\Серж\Documents\Arduino\libraries\etherShield/etherShield.h:34:13: note: uint16_t EtherShield::ES_fill_tcp_data_p(uint8_t*, uint16_t, const int*)

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Users\Серж\Documents\Arduino\libraries\etherShield/etherShield.h:34:13: note: no known conversion for argument 3 from 'const char*' to 'const int*'

    exit status 1
    Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.

    Этот отчёт будет иметь больше информации с
    включенной опцией Файл -> Настройки ->
    "Показать подробный вывод во время компиляции"
     
  4. b707

    b707 Гуру

    судя по ошибкам. связанным с "prog_char" - это библиотеки для старых версий IDE. Ищите более свежие версии