logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega32 i ENC28j60 Bascom - Kod nie działa, mimo że działał u innych

samuel1982 22 Paź 2013 02:50 3411 1
  • #1 12868327
    samuel1982
    Poziom 10  
    Witam wszystkich serdecznie.
    Czy ktos moglby sprawdzic kod bo juz kilka tygodni siedze i nie wiem co moze byc nie tak, kod sciagniety z netu i ponoc dziala na 100% no ale nie u mnie.
    Na tym samym urzadzeniu bez problemu odpalam inne oprogramowania tylko pisane w C i smigaja bez problemu.

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #2 14876857
    monoamiga
    Poziom 2  
    Nie miałem czasu przeanalizować kodu dokładnie, ale...
    ...zwróć Kolego uwagę na bloki "%END%". W procedurze obsługi HTTP osobno do bufora pakujesz nagłówek i osobno stronę w HTMLu. W obu przypadkach procedura kończy zapełnianie bufora po napotkaniu ciągu "%END%", a w blokach danych na końcu programu masz w jednym przypadku "endblock" zamiast "%END%", przez co bufor zapełnia się po brzegi ("nigdy" nie kończy) i coś prawdopodobnie dlatego się zacina.

    Poza tym w procedurze od http zdefiniowane są lokalne zmenne Z i Ztemp jako bajtowe... I w tym kodzie wystarczy, bo w pętli FOR dojeżdżają do wartości 200. Ale co, jeśli pakiet jest większy (np. przeglądarka wyśle masę nagłówków)? Lepiej by było przeszukiwać nie do 200, a do Max_framelen, co oczywiście wymaga zdefiniowania Z i Ztemp jako słów, nie bajtów.

    Po wprowadzeniu w/w. poprawek wgrałem kod do Atmegi 32 i wszystko działa.
REKLAMA