• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Mega2560 + ENC28J60 + EtherShield - zawiesza program
#1
Witam, 

wykonałem beta testy, przygotowanie kodu, itp. na UNO, gdzie program pięknie działał, stabilnie przez 2 dni. Postanowiłem przenieść to na Mega2560 które steruje automatyką w domu i error, program zawiesza się na inicjowaniu karty sieciowej (wyrzucałem linia po linii załadowanie każdego wiersza, aż znalazłem co wiesza). Gdy wyłączę linię e.setup, program idzie bez problemu.

Doczytałem, że problem jest w pinach SPI i że dla EtherCard.h trzeba zdefiniować pin SS na 53. Kwestia jak to zrobić w przypadku etherShield? Żaden ze sposobów znalezionych w necie nie pomaga.. Ewentualnie gdzie dokładnie wpiąć moduł, żeby zadziałał w przypadku tej biblioteki? Próbowałem:
50 SO
51 SI
52 SCK
53 SS/CS

Poniżej kod, mocno skrócony, o dane, mało istotne dla pytania:
Kod:
#include "etherShield.h"
#include "ETHER_28J60.h"
static uint8_t mac[6] = {0x54, 0x58, 0x58, 0x10, 0x00, 0x24};  
static uint8_t ip[4] = {192, 168, 10, 200};                      
static uint16_t port = 80;                                    
ETHER_28J60 e;

void setup() {
 e.setup(mac, ip, port);
 }

void loop(){
const char* params;
 if (params = e.serviceRequest())
 {

  if (strcmp(params, "all") == 0)
   {
     e.print("<center>");
     e.print("Temperatura : ");
     e.print(temperature);
     e.print("<br>Wilgotnosc powietrza : ");
     e.print(humidity);
   }
  if (strcmp(params, "kit_auto") == 0)
  {
   pilot = 0;
  e.print("<center><br><br><br><br>");
  e.print("kit auto!");
  e.print("<br><A HREF='all'><button>BACK</button></A>");
 }
  if (strcmp(params, "kit_on") == 0)
  {
   pilot = 2;
  e.print("<center><br><br><br><br>");
  e.print("Kit on");
  e.print("<br><A HREF='all'><button>BACK</button></A>");
 }
 if (strcmp(params, "kit_off") == 0) {
   pilot = 1;
  e.print("<center><br><br><br><br>");
  e.print("Kit off");
  e.print("<br><A HREF='all'><button>BACK</button></A>");
 }
  e.respond();
 }
}
 
Odpowiedź
  


Wiadomości w tym wątku
Mega2560 + ENC28J60 + EtherShield - zawiesza program - przez Mad_Maxs - 22-01-2017, 22:59

Skocz do:


Przeglądający: 1 gości