ENC28j60 не работает скетч помогите

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

  1. ra9sno

    ra9sno Нуб

    Скачал скетч (web_urok_02.rar · версия 1) с https://geektimes.ru/post/255430/ и при компиляции выдаёт ошибку помогите разобраться начинающему!

    Arduino: 1.6.8 (Windows 7), Плата:"Arduino/Genuino Uno"
    In file included from C:\Users\Алексе\Documents\Arduino\libraries\etherShield/etherShield.h:25:0,
    from C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:1:
    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);
    ^
    C:\Users\Алексе\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of 'progmem_s' with no type [-fpermissive]
    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    In file included from C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:1: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\etherShield/etherShield.h:34:76: error: ISO C++ forbids declaration of 'progmem_s' with no type [-fpermissive]
    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino: In function 'void loop()':
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:46:48: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:48:52: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:52:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:54:75: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:59:125: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:64:129: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:67:118: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:74:170: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:80:146: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

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

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

    ostrov Гуру

    Стесняюсь спросить, а вы установили библиотеки в IDE?
     
  3. ra9sno

    ra9sno Нуб

    Библиотеки шли в одном упакованном файле со скетчем, Я их скопировал в папку \мой документы\Arduino\libraries. При загрузке IDE Arduino я их вижу в меню \Скетч\Подключить библиотеку.
     
  4. ostrov

    ostrov Гуру

    С библиотеками обычно идут примеры. Попробуйте открыть пример в "файл - примеры - библиотека" и скомпилировать его.
     
  5. ra9sno

    ra9sno Нуб

    А как проверить подключились они или нет? сейчас они выделены зелёным цветом.
    #include "etherShield.h"
    #include "ETHER_28J60.h"
     
  6. ra9sno

    ra9sno Нуб

    А вот запись (ethernet.setup(mac, ip, port);) слово ethernet чёрное?
     
  7. ostrov

    ostrov Гуру

    Цвета ни о чем не говорят. Подсветку разработчики библиотеки могут сделать а могут и не сделать. Проверьте программой из примера это самое простое и надежно. В чем сложность то?
     
  8. AlexVS

    AlexVS Гик

    Попробуйте избавиться от русских букв в наименовании каталогов, другими словами положите ваши скетчи например в папку "C:\Arduino\"
     
  9. ra9sno

    ra9sno Нуб

    В примерах нет скетчей! Скопировал всё на диск C: ничего не изменилось. Ошибка заключена в этих строках, насколько я понимаю скетч жалуется на не совместимость типов.

    C:\arduino-1.6.8\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);
    ^
    C:\arduino-1.6.8\libraries\etherShield/ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of 'progmem_s' with no type [-fpermissive] extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    In file included from C:\arduino-1.6.8\web_variant1_01\web_variant1_01.ino:1:0:
    C:\arduino-1.6.8\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:\arduino-1.6.8\libraries\etherShield/etherShield.h:34:76: error: ISO C++ forbids declaration of 'progmem_s' with no type [-fpermissive] uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
     
  10. ra9sno

    ra9sno Нуб

    Нашёл библиотеку с примером "Hello World" - выдаёт туже ошибку.
     
    Последнее редактирование: 5 май 2016
  11. AlexVS

    AlexVS Гик

    Как то все странно у вас. Вы IDE просто скопировали из архива или устанавливали?
    IDE по умолчанию предлагает путь для установки "C:\Program Files\Arduino" - вот и не надо его менять, иначе возможны глюки.
     
  12. ra9sno

    ra9sno Нуб

    Переставил IDE результат тот же. Вот список ошибок со скетча Hello World. Ребята подскажите а этот скетч у кого нибудь вообще работает? А то может быть я зря две ночи не спал?

    Arduino: 1.6.8 (Windows 7), Плата:"Arduino/Genuino Uno".

    In file included from C:\Program Files\Arduino\libraries\etherShield/etherShield.h:25:0,
    from C:\Users\0E47~1\AppData\Local\Temp\arduino_modified_sketch_452498\HelloWorld.pde:3:

    C:\Program Files\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);
    ^
    C:\Program Files\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of 'progmem_s' with no type [-fpermissive]
    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    In file included from C:\Users\0E47~1\AppData\Local\Temp\arduino_modified_sketch_452498\HelloWorld.pde:3:0:

    C:\Program Files\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:\Program Files\Arduino\libraries\etherShield/etherShield.h:34:76: error: ISO C++ forbids declaration of 'progmem_s' with no type [-fpermissive]
    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    C:\Users\0E47~1\AppData\Local\Temp\arduino_modified_sketch_452498\HelloWorld.pde: In function 'void loop()':
    C:\Users\0E47~1\AppData\Local\Temp\arduino_modified_sketch_452498\HelloWorld.pde:28:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    ethernet.print("<H1>Hello World</H1>");
    ^
    exit status 1
    Ошибка компиляции для платы Arduino/Genuino Uno.
     
  13. Sergej102

    Sergej102 Нуб

  14. ostrov

    ostrov Гуру

    Кстати да. Где взять библиотеки для 1.6.Х?
     
  15. Sergej102

    Sergej102 Нуб

    я уже не помню где конкретно взял, т.к. перепробывал многое, но с этой библиотекой не ругается (выкладываю через yandex диск)
    https://yadi.sk/d/SRKMKxxpscoFs
    Сейчас бьюсь над проблемой:
    чтоб дисплей TFT LCD 320x240 на чипе ILI9340C заработал вместе с этим модулем на одной шине. По отдельности работают, а вместе - гаснет дисплей :( CS разные сделал у них
     
  16. archeryMaster

    archeryMaster Нуб

    Спасибо, помогло )
     
  17. SenDen

    SenDen Нуб

    Проблема решаема. Компилятор орет, что (/ip_arp_udp_tcp.h:32:66: error: 'prog_char' does not name a type) в файле ip_arp_udp_tcp.h, в строке 32, символ 66 АШЫБКА! prog_char не является названием типа!

    РЕШЕНИЕ: залесть в этот файл на эту строку и заменить 'prog_char' на 'char'
    И так во всех файлах библиотек.

    А тут (ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of 'progmem_s' with no type [-fpermissive]) орет что 'progmem_s' без типа, т.к. 'prog_char' он типом не признает. Как только поменяете все типы на "чар", эта ошибка пропадет сама.

    Библиотеку скорее всего брали отсюда: https://goo.gl/jzGkDZ

    А вот такого у меня небыло:
    "
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino: In function 'void loop()':
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:46:48: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:48:52: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:52:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:54:75: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:59:125: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:64:129: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:67:118: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:74:170: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    C:\Users\Алексе\Desktop\Downloads\web_urok_02 (1)\web_variant1_02\web_variant1_02.ino:80:146: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]"

    Надеюсь уйдет, как решишь проблему с типом данных.
    Если кому помог, отпишите. Это очень важно, т.к. Сам долго не мог найти решение данной проблемы.
     
  18. SenDen

    SenDen Нуб

    Блин, тупанул) Вот библиотеки, которые я редактировал самостоятельно. (Расширение поменять на .rar)
     

    Вложения: