Interrupción int0 ethernet??

Hola compañeros, llevo varios días buscando información sobre cómo usar la interrupción que te manda la shield de ethernet haciendo el puente. Se supone que si lo haces, te manda una interrupción a nivel bajo a pin 2 digital, int0. El problema es que no funciona, sino no estaría aquí, jaja. Resulta que no pone nunca ese pin a LOW, está continuamente a 3.3 V (aprox.) Quiero usar esta interrupción porque mi programa gestiona una serie de sensores y tiene representación por pantalla táctil, entonces pierde conexiones si no coincide que cuando hace la petición la página web, se hace la lectura del cliente y se pasa a la rutina de la página. Con la interrupción, me despreocuparía de tener que estar pendiente cada pocas líneas de si hay un cliente y según se conecta se pasa a esa rutina. La interrupción la activo bien porque uso lo mismo para una boya de nivel y eso funciona. El problema creo que es que el w5100 no manda esa interrupción, no sé si hay que activarlas ni cómo se hace. ¿Alguien que haya tenido el mismo problema o que sepa cómo solucionarlo?

Un saludo y muchas gracias.

Miraste el esquemático del shield ethernet para corroborar la conexión al pin2?

Esquematico Ethernet Shield v5.0

Todo trabaja a 3.3V asi que no me soprende que leas eso. El pin PD2 parece ser

Estuve mirando el datasheet del w5100 y comprobé continuidad entre el pin y el puente y la hay. La interrupción es a nivel bajo, así que supongo que el resto del tiempo estará en alto, lo que no se produce es esa transición y la miré con polímetro en el puente, no en el pin. Ahora no te puede asegurar que mirase que iba al pin 2, me suena que sí, pero lo confirmaré. En el esquema que me pasas va al PD2, que entiendo que es el 2 digital, ya que es el que soporta interrupciones. Esto es lo mejor que he encontrado pero no funciona, ni sé si es porque no tengo la librería w5100.h, porque hay que quitar los comentarios de activar las interrupciones... http://forum.arduino.cc/index.php?topic=160694.0

Muchas gracias

Saludos He visto que varios han tenido problema con la ethernet shield. Mi pregunta han tratado de usar el watchdog para evitar el congelamiento del sketch?

Respecto de tu observación de los comentarios te diré que estas en lo correcto. Retira los comentarios en la librería y debería funcionar.

No he podido encontrar el código al que haces referencia en mi librería Ethernet. Donde lo encontraste? Ayer cuando te respondí lo pensé. Le di una busqueda rápida esperando encontrar algo y no tuve suerte. Ahora mire mas detenidamente y tampoco. Vaya, tenemos librerías diferentes?

Ese código no viene en la librería, supongo que por eso dicen en todos los sitios que no lo soporta. Hay que descargarla por otro lado. Hoy también he encontrado estos dos posts:

http://forum.arduino.cc/index.php?topic=189247.0

http://forum.arduino.cc/index.php?topic=101467.0

Todavía no los he probado, ya os comentaré si funciona y cómo. Encontrar información sobre esto me esta costando mucho.

En cuanto a lo del watchdogtimer, el problema no es que se bloquee, es que no hace caso a la interrupción del w5100, y por ahora, creo que el principal error que cometo es que no activo dicha interrupción, di por echo que venía activada, pero no es así.

Lo dicho, en cuanto encuentre la solución lo postearé.

Otro problema es que soy un paquete buscando, jaja, pero no será por falta de ganas....

En lo personal te felicito: por plantear debidamente un problema, por no quedarse dormido esperando que los demás te lo solucionemos, por buscar información en internet donde siempre esta todo, y por compartirla.

Ojalá los demás lean esto y aprendan. Me la paso diciendo justamente eso.. todo esta en GOOGLE y como dice el amigo enhjra "El que busca, encuentra".

Muchas gracias!! Intento buscarme la vida y cuando no consigo encontrar nada pregunto, como ha sido el caso. Hay muchas cosas que me sobrepasan, pero lo que nunca haré será pedir ayuda sin antes intentarlo yo, porque eso no es buscar ayuda, es buscar quien te lo resuelva sin hacer nada. Y que menos que compartir lo que voy encontrando, yo creo que eso motiva a aquel que te está intentando ayudar, porque ve que su ayuda es una cooperación en resolver un problema que a cualquiera le puede surgir y no una patata caliente que pasan a ver si se la resuelven. No sería ético quedarme de brazos cruzados mientras vosotros pasáis el tiempo investigando para resolver mi problema.

Dicho esto, mira en la carpeta utility de ethernet que seguro que tienes el w5100.h

Ahora estoy intentando compilar una de las posibles soluciones:

W5100.writeIMR (0x0F);

Agrego la librería #include <utility/w5100.h> y #include <utility/socket.h>
Y me da error: no matachines funcion for call to ‘W5100Class::recv_data_processing(SOCKET&, uint8_t*&, int, int)’
‘Class W5100Class’ has no member ñames ‘send_data_processing_offset’

A alguien ve donde estoy metiendo la pata??
Muchas gracias

cuando es asi no la pongas entre < > sino con comillas " " y funciona.
Si no es eso sube el file completo y yo reproduzco en mi IDE el problema y busco alguna posible solución.

Ok, muchas gracias, voy a intentarlo. Como lo he visto puesto de esa forma pues yo igual, como los burros, jaja.

Acabo de probarlo y mi gozo en un pozo.....

Hola compañeros, escribo para contaros mis no progresos. Estoy mirando las librerías y las funciones que he encontrado que se usan no aparecen. Tengo dos librerías diferentes de w5100, una que aparece write, pero no writeIMR. En la otra aparece una función que es serIMR, que supongo hará lo mismo que la anterior, pero tampoco he conseguido que funcione. Sigo intentándolo, seguiré posteando los progresos, o en este caso los no progresos. Un saludo a todos

Bueno, todavía no he conseguido lo que busco, pero poco a poco. Ahora mismo leo el registro de interrupciones y lo escribo. Lo siguiente es que realmente haga la interrupción y luego que haga lo que tiene que hacer. Vamos pasito a pasito. Todavía no voy a postear nada, cuando funcione todo os comentaré cómo lo he conseguido. Un saludo

Hola compañeros, ya he conseguido algunos avances, pero todavía no lo he conseguido del todo. Hace unos minutos he conseguido recibir la interrupción y que el arduino me mande la página web. Lo que pasa es que todavía no me funciona del todo bien, tendré que actualizar la máscara de interrupciones, o algo así. En cuanto me funcione bien posteo una explicación. Un saludo a todos