Witam ponownie w temacie po kilku miesiącach !
Więc tak, udało mi się zrobić programator po ethernecie
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
Nie jakiś tam super, ale programuje Flash, EEprom i fuski na atmege 168.
Nie chcę rozpoczynać ponownie dyskusji czy był sens robienia takiego programatora czy nie
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
był to projekt zaliczeniowy i udało mi się go zaliczyć
![Bardzo szczęśliwy :D](https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif)
No ale nie piszę tutaj tylko żeby się pochwalić
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
Mam pewien problem i nie wiem do końca z czego on wynika.
Tyczy się on komunikacji po UDP, a mianowicie mój program od czasu do czasu się zacina.
Zrobiłem 1000 testów i wyszło na to, że program czasem zawiesza się w następujących 2 liniach ( funkcje opierają się na książce Pana Mirka)
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Mój program działa na zasadzie komunikacji komputera z uC. Wysyłam linie programu do uC, ten zaś robi z nią różne rzeczy, i kiedy skończy odsyła do kompa potwierdzenie. Patrząc na WireShark widać że komputer potwierdzenie otrzymuje, i wysyła nową linię.
Czasem właśnie uC odbierze tą linię w jakiś dziwny sposób przez co cały uC się wiesza. Sprawdzając diodą linia po lini kod, doszedłem właśnie do powyższego fragmentu kodu, który najprawdopodobniej jest odpowiedzialny za zawieszenie pracy.
Nie wychwyciłem żadnego schematu w zawieszaniu uC, tz kiedy 'Bombarduje' go hexem składającym się z 600 linii, czasem wiesza się po 9 liniach, czasem po 100, a czasem po 3 krotnym przesłaniu programu (1800linii kodu).
Co jeszcze ciekawe, kiedy program tak sobie wypadnie z schematu, i się zawiesi . . czasem wykonuje mi 2 funkcje ( zawsze te same) , których nie ma prawa wykonać ponieważ są one wywoływane przez odpowiedni rozkaz z komputera. Te 2 funkcje są jednak zawsze wykonywane przed wysłaniem programu. Może więc kiedy program się wiesza, przepełnia się w jakiś sposób stos przez co wykonywane są te funkcje ponownie ???
W czym może tkwić problem? Tak sobie myślę, że może kiedy suma kontrolna się nie zgadza to powyższe funkcje nie przypiszą mi do bufora żadnej wartości, przez co uC nie wyśle potwierdzenia. Co o Tym myślicie ?
Ps Przepraszam za liczne powtórzenia wyrazów, ale nie mam już głowy do słowotwórstwa
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)