Problema com Ether_28J60 e Serial.print [Solucionado]

Fórum sobre plataforma Arduino

Moderadores: andre_luis, 51, guest2003, Renie

Problema com Ether_28J60 e Serial.print [Solucionado]

Mensagempor edsont » 25 Jun 2014 13:02

Estou com um Arduino nano e um módulo ENC28J60 usando a library ETHER_28J60.

O módulo funciona normalmente, exceto quando eu incluo Serial.begin(9600). Então trava, não responde nem mesmo ao primeiro Serial.print após o begin(). No sketch de exemplo WebRemote, também trava, mas colocando delay(10) após o begin funciona. No meu programa continua travado. Alguém já passou por isso?

O serial usa apenas TX e RX. O ENC28J60 usa D02, D10, D11, D12 e D13. Não deveria interferir.
Editado pela última vez por edsont em 25 Jun 2014 19:00, em um total de 1 vez.
Avatar do usuário
edsont
Word
 
Mensagens: 555
Registrado em: 22 Mai 2007 17:19
Localização: Araraquara-SP Brasil - Terra - Sistema Solar - Via Láctea

Re: Problema com Ether_28J60 e Serial.print

Mensagempor andre_luis » 25 Jun 2014 13:18

edsont escreveu:O módulo funciona normalmente, exceto quando eu incluo Serial.begin(9600). Então trava, não responde nem mesmo ao primeiro Serial.print após o begin()


Aparentemente você não é o único passando por isso: Arduino Mega appears to lock up when using Serial.






+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Problema com Ether_28J60 e Serial.print

Mensagempor edsont » 25 Jun 2014 18:59

Descobri a causa do problema.
Estava ocorrendo estouro de pilha.
O Arduino copia todos as constantes String para a RAM na inicialização. Estava ficando sem RAM.
Para evitar esta cópia para a RAM tive que declarar os strings (textos da página WEB) como const PROGMEM e criar uma função que lê a memória de programa e passa caracter por caracter para a função ETHER_28J60:print.

A solução foi baseado no site:
http://scott.dd.com.au/wiki/Arduino_Static_Strings

Fiz uma gambiarra para funcionar com a biblioteca ETHER_28J60 que só aceita string ou int. A solução usa char.
Avatar do usuário
edsont
Word
 
Mensagens: 555
Registrado em: 22 Mai 2007 17:19
Localização: Araraquara-SP Brasil - Terra - Sistema Solar - Via Láctea


Voltar para ARDUINO

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes

x