EthShield gykran lefagy

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
Avatar
robertban
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2010. március 8. hétfő, 7:00

EthShield gykran lefagy

Hozzászólás Szerző: robertban »

Sziasztok,

Van valakinek tapasztalata abban, hogy mi okozhatja azt, hogy a WEBServer-t lekérdezgetve (4 digitális bemenetet figyel és azok állapota van kint egy oldalon egy táblázatban) 2-7 naponta lefagy, és elérhetetlenné vállik a cucc? Olyankor egy Reset és utána megint megy. 10 mp-ként kér le róla infót egy program.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Az EthShield-en ENC28J60 chip van.
Ha a TCP/IP csomag megérkezése után még 1 érkezik valamiért, és nem dolgozod fel, a memóriájában torlódás lehet.

Érdemes ilyen esetben nem pollinggal kérdezni, hogy van-e valami, hanem INT alapon. Így ez megúszható.

Valamint érdemes időnként lekérdezni az ENC-től a verziószámot. Így ha nem válaszol, watchdoggal újraindítani a rendszert. Esetleg időnként az ENC memóriát kipucolni.

Csak tippelek, anélkül, hogy a komplett programot látnám....
Avatar
robertban
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2010. március 8. hétfő, 7:00

Hozzászólás Szerző: robertban »

Első olvasatra egyértelműen eltaláltad a gondot - köszönöm.
Pollinggal kérem le - a hőmérős webszervert példát irtam át.
A megszakítás alap esetleg egy kis figyeléssel kombinálva tényleg jobban hangzik - nem tudod hol találok ilyesmi példákat?

Bocsánat ha olyant kérdezek amit tudnom kellene.....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Olyan amit tudni kéne - nincsen :).
Na jó, tapasztalati útom a páka meleg... :P

Az arduino alatt az INT alapú kezelést nem ismerem igazán.
Ott szerintem valami más gond lehet. A gyári mintaprogi a http://hunveyor13.dyndns.org oldalon ~4 hete fut. Igaz nincs sűrűn kérdezgetve...

Ami tipp könnyebben megoldható szerintem:
- a holmit időnként újraindítani
- a pufferét kiolvasni és feldolgozni azonnal.

A buffer telítődés akkor lép fel, ha
- sűrűn kérdezem , több helyről.
- közben kóbor csomagokat is kap, ami nem neki szól:(


Watchdoggal újraindítás a bootloaderbe beragadast jelenti!
- ha a milis() elér egy adott értéket, akkor resetláb + gnd közé relé (parasztos megoldás, de működik:)
Válasz küldése