Скачал скетч (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. Этот отчёт будет иметь больше информации с включенной опцией Файл -> Настройки -> "Показать подробный вывод во время компиляции"
Библиотеки шли в одном упакованном файле со скетчем, Я их скопировал в папку \мой документы\Arduino\libraries. При загрузке IDE Arduino я их вижу в меню \Скетч\Подключить библиотеку.
С библиотеками обычно идут примеры. Попробуйте открыть пример в "файл - примеры - библиотека" и скомпилировать его.
А как проверить подключились они или нет? сейчас они выделены зелёным цветом. #include "etherShield.h" #include "ETHER_28J60.h"
Цвета ни о чем не говорят. Подсветку разработчики библиотеки могут сделать а могут и не сделать. Проверьте программой из примера это самое простое и надежно. В чем сложность то?
Попробуйте избавиться от русских букв в наименовании каталогов, другими словами положите ваши скетчи например в папку "C:\Arduino\"
В примерах нет скетчей! Скопировал всё на диск 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);
Как то все странно у вас. Вы IDE просто скопировали из архива или устанавливали? IDE по умолчанию предлагает путь для установки "C:\Program Files\Arduino" - вот и не надо его менять, иначе возможны глюки.
Переставил 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.
Аналогичная проблема, но в одном из уроков (http://arduino-project.net/podklyuchenie-enc28j60-arduino-mega-2560/) прочитал, что библиотеки от 28j60 с IDE 1.6.x не работают уже.... и как быть?
я уже не помню где конкретно взял, т.к. перепробывал многое, но с этой библиотекой не ругается (выкладываю через yandex диск) https://yadi.sk/d/SRKMKxxpscoFs Сейчас бьюсь над проблемой: чтоб дисплей TFT LCD 320x240 на чипе ILI9340C заработал вместе с этим модулем на одной шине. По отдельности работают, а вместе - гаснет дисплей CS разные сделал у них
Проблема решаема. Компилятор орет, что (/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]" Надеюсь уйдет, как решишь проблему с типом данных. Если кому помог, отпишите. Это очень важно, т.к. Сам долго не мог найти решение данной проблемы.