Спойлер

автор библиотеки
Спойлер
* Author: Guido Socher* Based on the enc28j60.c file from the AVRlib library by Pascal Stang.
Для проверки получения прерывания с enc28j60, подключил ножку INT к выводу ардуины 21, вот код
Код: Выделить всё
#include "EtherShield.h"
#define port 80
#define BUFFER_SIZE 550
// MAC
static uint8_t mymac[6] = {0x54,0x55,0x58,0x10,0x00,0x25};
// IP
static uint8_t myip[4] = {192,168,1,12};
// The ethernet shield
EtherShield e = EtherShield();
void setup()
{
Serial.begin(115000);
// initialize enc28j60
e.ES_enc28j60Init(mymac);
// init the ethernet/ip layer:
e.ES_init_ip_arp_udp_tcp(mymac, myip, port);
attachInterrupt(2, on, HIGH); // INT0 --> Pin 21
}
void loop()
{
}
void on()
{
Serial.print("on\n");
}
Проблема в том, что выводится "on" (Serial.print("on\n");) только один раз, хотя на сколько я понял он должен дёргать прервыние каждый раз когда приходит пакет.
На отключение и обратное подключение кабеля RJ45 никак не реагирует. Если поставить в attachInterrupt условие LOW, вообще нет реакции. Если использовать один из примеров работы с этим эзернетом, то всё работает (там не используется INT).
В чём может быть проблема?
Заранее сапсибо.