Ошибка компиляции для Ethernet
- Войдите на сайт для отправки комментариев
Сб, 23/07/2016 - 18:42
Все привет.
У меня самая последня версия Arduino IDE.
Моя цель запустить вот такой код:
static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network,
// so unless you have more than one of these boards
// connected, you should be fine with this value.
static uint8_t ip[4] = {192, 168, 1, 15}; // the IP address for your board. Check your home hub
// to find an IP address not in use and pick that
// this or 10.0.0.15 are likely formats for an address
// that will work.
static uint16_t port = 80; // Use port 80 - the standard for HTTP
ETHER_28J60 ethernet;
void setup()
{
ethernet.setup(mac, ip, port);
}
void loop()
{
if (ethernet.serviceRequest())
{
ethernet.print("<H1>Hello World</H1>");
ethernet.respond();
}
delay(100);
}
Вся проблема в том, что я не могу скомпилировать данный проект. Пытаюсь добавить библиотеки так: Sketch->Include Library->Ethernet.
Либо добавить zip архив отсюда. https://github.com/jcw/ethercard
В принципе ошибка одна и таже.

Как исправить данную ошибку? Зарание спасибо.
А нельзя текст ошибки скопипастить текстом, а то на Вашей картинке я ничего не могу прочитать.
Стоп, так Вы же таки не включили библиотеку. Так включите. Её надо распаковать в директорию libraries и включить #include <Ethernet.h> - ничего сложного.
Что-то я видать не то делаю.
Решил собрать по новой. Удалил старый проект. Затем в скетчах попытался добавить zip архив. IDE ругнулся, что такая библиотека уже есть. Добавляю из списка свою библиотеку+Ethernet. При компиляции начинает ругаться что не хватает файлов. Я в проект кинул файлы.
Потом компилятор почему-то переименовал .pde в .ino и начал ругаться, что .pde не хватает. Я склонировал .ino и переименовал в .pde. Теперь код выглядит так:
#include <Dhcp.h> #include <Dns.h> #include <Ethernet.h> #include <EthernetClient.h> #include <EthernetServer.h> #include <EthernetUdp.h> #include "etherShield.h" #include "ETHER_28J60.h" static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network, // so unless you have more than one of these boards // connected, you should be fine with this value. static uint8_t ip[4] = {192, 168, 1, 15}; // the IP address for your board. Check your home hub // to find an IP address not in use and pick that // this or 10.0.0.15 are likely formats for an address // that will work. static uint16_t port = 80; // Use port 80 - the standard for HTTP ETHER_28J60 ethernet; void setup() { ethernet.setup(mac, ip, port); } void loop() { if (ethernet.serviceRequest()) { ethernet.print("<H1>Hello World</H1>"); ethernet.respond(); } delay(100); }И по прежнему ругается с такой ошибкой:
Вот что говорит дебажный лог:
Вы взяли древние, как дерьмо мамонта библиотеки (и примеры) и современную IDE.
Про PDE забудьте, везде используйте INO.
Про prog_char - либо доопределите такой тип, либо замените на что-нибудь вразумительное. Как это сделать - на форму примерно раз в два месяца появляется кто-нибудь с этой ошибкой и всё уже разъяснено тысячу раз, поиск в правом верхнем углу.
Может конечно и древняя, но я нашел на форуме такую информацию:
По моему ошибка кроется вот здесь
1#include <Ethernet.h>Эта библиотека если не ошибаюсь для W5100
а для ENC28J60 вот эта https://github.com/jcw/ethercard
PDE устаревший формат, а prog_char не используется уже несколько лет. На форуме это обсуждалось 100500 раз. Где "поиск" я Вам сказал.