arduino mega + enc28j60

Обсуждаем контроллеры компании Atmel.
Ответить
encyclon
Открыл глаза
Сообщения: 42
Зарегистрирован: Вт окт 30, 2012 10:33:28

arduino mega + enc28j60

Сообщение encyclon »

Добрых суток, имеется arduino mega 2560 и ethernet enc28j60, вот такой:

СпойлерИзображение


автор библиотеки
Спойлер* 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).

В чём может быть проблема?

Заранее сапсибо.
Ответить

Вернуться в «AVR»