Elektroda.pl
Elektroda.pl
X
CControls
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Czujniki 18B20 i przerwania [BASCOM][atmega64]

Jarosław J 21 Wrz 2009 20:48 2842 14
  • #1 21 Wrz 2009 20:48
    Jarosław J
    Poziom 14  

    Zrobiłem na Atmedze 64 czujnik temperatury na dwóch DS 18B20 Wszystko działa elegancko, czujniki są dokładne jednak docelowo chciałbym, aby regulacja temperatury była zależna od czasu.

    Dołożyłem obsługę przerwań wewnętrznego timera , i tutaj pojawił się problem. Czujniki zaczęły się "dławić" czasami (przez sekundę ) wskazywały mi temperaturę nierealną ( 400 st C) a czasami układ nie wykrywał czujnika Wszystkie te złe rzeczy dzieją się raz na kilkanaście sekund, jednak wystarczy to, żeby zafałszować inne zmienne (np temperaturę maksymalną)

    Czytałem gdzieś na forum, że obsługa czujników po 1wire działa na wewnętrznych przerwaniach które kłócą się z przerwaniami od Timera i ich obsługa zajmuje dużo czasu mikrokontrolerowi.

    W takim razie, IMHO obsługa tych czujników przez Basom zupełnie mija się z celem.

    Przypuszczam, że istnieją jakieś rozwiązania bezkolizyjnej obsługi tych czujników przez procesor. widziałem nawet jakiś kit (z zaznaczeniem, że program napisany w BASCOM) gdzie obsługuje się dwa trzycyfrowe wyświetlacze LED Nie podejrzewam, żeby tam układ przerywał obsługę przerwań (wyświetlacza) na czas obsługi czujnika Czy ma ktoś jakieś informacje na temat : "Jakim sposobem to obejść" ?

    0 14
  • CControls
  • #2 21 Wrz 2009 23:10
    mirekk36
    Poziom 42  

    Jarosław J napisał:
    Dołożyłem obsługę przerwań wewnętrznego timera , i tutaj pojawił się problem. Czujniki zaczęły się "dławić" czasami (przez sekundę ) wskazywały mi temperaturę nierealną ( 400 st C) a czasami układ nie wykrywał czujnika Wszystkie te złe rzeczy dzieją się raz na kilkanaście sekund, jednak wystarczy to, żeby zafałszować inne zmienne (np temperaturę maksymalną)

    Czytałem gdzieś na forum, że obsługa czujników po 1wire działa na wewnętrznych przerwaniach które kłócą się z przerwaniami od Timera i ich obsługa zajmuje dużo czasu mikrokontrolerowi.


    - to coś bardzo źe kolega czytał a na dodatek nie wiadomo z jak kiepskiego źródła.

    W Bascomie obsługa DSów w ogóle nie mija się z celem - mijać to się może wtedy gdy się tragicznie napisze swój własny kod i to zdaje się nastąpiło u kolegi ;)

    Gdyby Bascom wykorzystywał któreś przerwanie lub timer do obsługi 1Wire to miałbyś to jasno opisane w Helpie jak przy każdym innym poleceniu. Zajrzyj sobie w Helpie np na Configrc5 i zobacz - jak jest to opisane, które Timery są zajęte itp it


    - początkujący - popełniają zawsze i dokładnie ten sam błąd - aż dziw bierze, że nie chce się poczytać postów choćby tylko na samej elektrodzie a jest ich w tym temacie chyba z milion - skąd można się dowiedzieć o tym podstawowym błędzie

    - jest nim to, że wszyscy z uporem maniaka po wysłaniu rozkazu odczytu do czujnika - stosują polecenie Waitms 750 i dziwią się, ze wariuje im albo temperatura albo multipleksowanie np wyświetlaczy LED

    Jedyne co może mieć wspólnego polecenie obsługi 1Wire z przerwaniami to to, że zostają one wyłączone na czas realizacji wysyłania czy odbioru poleceń do i z czujników. I to może być niekiedy rzeczywiście w Bascomie powodem (ale co najwyżej krótkotrwałego mignięcia wyświetlaczy multipleksowanych) jakichś minimalnych zakłóceń przy multipleksowaniu - gdy te przerwania są na chwilkę wyłączane.

    Jeśli użyjesz wyświetlacza LCD to takie zjawiska nie odczujesz - więc dlaczego mówić, że obsługa DSów mija się z celem - trzeba tylko wiedzieć jak to działa - warto kiedyś poczytać dokładnie jak ten protokół 1Wire wygląda - co się z nim wiąże i jakie czasy są wymagane aby później nawet pisząc programy w Bascomie wiedzieć co z czym się je.

    Jeśli jednak dobrze rozplanuje się procedurę multipleskowania pozostawiając w niej troszkę czasu także na wykonanie się rozkazów magistrali 1Wire to można i całkowity sukces osiągnąć ..... no ale to już trzeba troszkę o tym i o tamtym poczytać i popraktykować ....

    generalnie - jeśli np masz 4 wyświetlacze LED i zakładam , że do multipleksowania w pełni świadomie użyłeś jakiegoś Timer'a i świadomie poobliczałeś sobie czasy odświeżania poszczególnych wyświetlaczy - to wystarczy, że policzysz jeszcze troszkę i postarasz się umieścić wysyłanie rozkazów 1Wire w czasie obsługi np 2-3 jakby dodatkowych wirtualnych wyświetlaczy, których fizycznie nie ma - ale ten czas niewidoczny dla oka przeznaczasz na gadanie z czujnikami. Fakt trzeba się przy tym baaardzo mocno nagimnastykować w Bascomie - bo jeśli tę obsługę będziesz wkładał w przerwanie - to będzie sie ona wydłużała i może w niepomyślnym przypadku trwać zbyt długo - że aż zabraknie czasu na wykonywanie zadań w pętli głównej programu

    ale można

    ........................

    a to, że koledze pojawiają się temperatury rzędu 400st C - to już totalny dramat w kodzie - trzeba nieźle się postarać, żeby aż taaaaakie błędy uzyskać ;) .... zwykle ludzie narzekają, że po podłączeniu pojawia im się 85stC ....

    jest to często wynikiem albo błędem w fizycznych połączeniach, brakiem podciągania rezystorem 4,7K do VCC linii danych - albo brakiem sprawdzania sum kontrolnyc CRC, które w Bascomie zdaje się sprawdzać można za pomocą odczytywania wartości błędu "Err"

    .............. jest sobie na elektrodzie taki temat "4xDS18B20 plus LCD= Termometr" którego autorem jest zdaje się __Duch czy jakoś tak - temat ciągnie się już bardzo długo i jak sobie kolega chociaż ten temat w całości poczyta to zobaczy na co trzeba zwracać uwagę przy działaniach z DS'ami w Bascomie

    0
  • CControls
  • Pomocny post
    #3 21 Wrz 2009 23:14
    atom1477
    Poziom 43  

    Obsługa 1Wire w BASCOMie nie jest obsługiwana w przerwaniach.
    Możesz spróbować czegoś takiego:

    Code:

      cli
      1wreset
      1wwrite &H55
      sei
      cli
      1wwrite B2
      sei
      cli
      1wwrite &H44
      sei


    Chodzi oczywiście o porozdzielanie wszystkich instrukcji 1Wire sekwencjami sei,cli.

    0
  • Pomocny post
    #4 21 Wrz 2009 23:18
    mirekk36
    Poziom 42  

    ooo właśnie albo jak mówi kolega atom1477 --- bo ja już dawno w Bascomie bawiłem się 1Wire - być może nawet samemu trzeba wyłączać przerwania na czas wysyłania poleceń - jak pokazał kolega powyżej w przykładzie - więc tym bardziej można osiągnąć twój cel na kilka różnych sposobów

    0
  • Pomocny post
    #5 22 Wrz 2009 08:31
    DosinskY
    Poziom 18  

    Nie wiem co rozumiesz przez stwierdzenie: " aby regulacja temperatury była zależna od czasu", jak i kiedy realizujesz obsługę przerwań ale błędy odczytu temperatury prawdopodobnie są wynikiem zakłócania cyklu odczytu ds-a przez przerwanie od timera. Poczytaj o zależnościach czasowych 1-wire. Jest to interfejs asynchroniczny i musisz zapewnić aby poszczególne bity odczytywane były w określonych chwilach czasu...i nic tego procesu zaburzyć nie może. Najbezpieczniej jest wyłączyć wszystkie przerwania na czas obsługi termometru (jeżeli oczywiście takowe rozwiązanie jest dopuszczalne z punktu widzenia działania programu).

    Pozdrawiam

    0
  • #6 22 Wrz 2009 09:38
    Jarosław J
    Poziom 14  

    mirekk36 napisał:



    - początkujący - popełniają zawsze i dokładnie ten sam błąd - aż dziw bierze, że nie chce się poczytać postów choćby tylko na samej elektrodzie a jest ich w tym temacie chyba z milion - skąd można się dowiedzieć o tym podstawowym błędzie

    - jest nim to, że wszyscy z uporem maniaka po wysłaniu rozkazu odczytu do czujnika - stosują polecenie Waitms 750 i dziwią się, ze wariuje im albo temperatura albo multipleksowanie np wyświetlaczy LED


    Cytat:
    a to, że koledze pojawiają się temperatury rzędu 400st C - to już totalny dramat w kodzie - trzeba nieźle się postarać, żeby aż taaaaakie błędy uzyskać ;) .... zwykle ludzie narzekają, że po podłączeniu pojawia im się 85stC ....

    jest to często wynikiem albo błędem w fizycznych połączeniach, brakiem podciągania rezystorem 4,7K do VCC linii danych - albo brakiem sprawdzania sum kontrolnyc CRC, które w Bascomie zdaje się sprawdzać można za pomocą odczytywania wartości błędu "Err"

    .............. jest sobie na elektrodzie taki temat "4xDS18B20 plus LCD= Termometr" którego autorem jest zdaje się __Duch czy jakoś tak - temat ciągnie się już bardzo długo i jak sobie kolega chociaż ten temat w całości poczyta to zobaczy na co trzeba zwracać uwagę przy działaniach z DS'ami w Bascomie



    ad 1 To kolega chyba nie dokładnie przeczytał mój temat bo ja nie steruję wyswietlaczami LED a wzmianka o wyswietlaczach LED widnieje jako przykład problemu, co świadczy o tym, że jednak czytałem tematy na ten temat na elektrodzie.

    Ad 2 przykład mam z Elektrody i sprawdza sumy CRC. a to że jestem początkujący i czasem pochrzanię coś w kodzie a nawet doprowadzę do totalnego dramatu, to nie powinno być tematem rozpisywania się kolegi mirekk36

    Faktem jest , że kolega wie więcej ode mnie na temat Bascoma, i wcześniej oraz nawet teraz dużo mi pomógł, jednak byłbym wdzięczny gdyby kolega ograniczył komentarz moich umiejętności.

    Jak tylko wrócę do domu postaram się zamieścić fragmenty kodu, może ktoś wytknie mi błędy Postaram treż się zmodyfikować mój kod jak polecacie.

    0
  • Pomocny post
    #7 22 Wrz 2009 09:51
    mirekk36
    Poziom 42  

    Jarosław J --> ja się nigdy nie rozpisuję czy nie krytykuję nikogo za to, że czegoś tam jeszcze nie potrafi, nie umie, czy źle napisze kod - natomiast zawsze mi się włos jeży gdy ktoś pisze takie rzeczy jak to, że:

    1. a to Bascom się nie wyrabia
    2. a to, że wina przerwań

    wszystko tylko nie ja

    ja sam się cały czas uczę programować - ale jak coś mi nie wychodzi to staram się opisać krótko i zwięźle z czym ja mam problem, prezentuję ew fragment kodu, który napisałem i oczekuję na jakieś sugiestie.

    więc jeszcze raz podkreślam, że nie twoje umiejętności wzbudziły we mnie taką chęć rozpisania się .... bo nauczyć się tego może się każdy także ty - spokojnie .... tylko może pytania bardziej na temat i konkretne pls

    a przecież zdaje się, że niedawno chyba nawet koledze coś tam udało mi się podpowiedzieć i nie rozwodziłem się nad żadnymi umiejętnościami (co to ma do rzeczy)

    ..... a twoje pytanie jak sam spojrzysz chłodnym okiem w pierwszym poście było tak abstrakcyjnie ogólne a do tego od razu opinie, że czegoś tam nie da się w biednym Bascomie zrobić. A przecież jeśli komuś nie odpowiada Bascom to ma jeszcze C albo asm. Ja sam już programowałem w asm, bardzo dużo w Bascomie a teraz uczę się już jakiś czas C .... ale nigdy nie powiem złego słowa o żadnym innym języku - trzeba tylko wiedzieć jak, kiedy i którego warto użyć

    ...... napisz więc bardziej szczegółowo co sprawia ci problem, pokaż swój fragment kodu, który tobie sprawia kłopoty a na pewno nie tylko ja ale i inni chętnie i konkretnie pomogą w rozwiązaniu

    0
  • #8 22 Wrz 2009 10:42
    Jarosław J
    Poziom 14  

    To że w mojej opinii nie da się czegoś zrobić oczywiście, że nie oznacza tego że tak właśnie jest.

    Dla tego bardzo się ucieszyłem, kiedy dowiedziałem się, że działanie timerów, przerwań nie wyklucza obsługi DS 18b20.

    Jak wrócę z pracy po 15 30 zamieszczę mój kod, i dalej będę liczył na Waszą pomoc.

    Bardzo mi zależy na Waszym zdaniu na temat moich programów właśnie w ten sposób dużo się uczę. Wiele też nie rozumiem, postaram się też sprecyzować każde moje pytanie, żeby nikt nie mał wątpliwości o co w nim chodzi.

    Bardzo się cieszę, że dołączyłem do Waszej "społeczności" i że mogę spodziewać się pomocy.

    0
  • Pomocny post
    #9 22 Wrz 2009 11:31
    atom1477
    Poziom 43  

    Tylko jeżeli będziesz wyłączał przerwania na czas obsługi 1Wire, to zliczanie czasu w przerwaniu będzie zaburzone jeżeli nie zastosowałeś trybu CTC Timera tylko zwykłe przeładowywanie Timera w przerwaniu (dokładnie to będzie się troszkę późniło).

    0
  • #10 22 Wrz 2009 16:39
    Jarosław J
    Poziom 14  

    Oto istotny fragment mojego kodu. Faktycznie nie wiem nic o tym, czym charakteryzuje się tryb CTC Timera i chyba jednak go nie używam.

    Bardzo proszę rzućcie na to okiem.

    Code:
    $regfile = "m32def.dat"
    
    $crystal = 8000000

    Config 1wire = Portc.5

    Config Lcdpin = Pin , Db4 = Portc.1 , Db5 = Portc.0 , Db6 = Portd.7 , Db7 = Portd.6 , E = Portb.0 , Rs = Portb.1
    Config Lcd = 24 * 2
    Cursor Off
    Cls

    Declare Function Decigrades(byval Sc(9) As Byte) As Integer
    Declare Sub Init
    Declare Sub Convallt

    Dim Ddd As Byte
    Dim Baa As Byte
    Dim Waa As Word
    Dim Dg As Integer                                 
    Dim Min1 As Integer
    Dim Min2 As Integer
    Dim Max1 As Integer
    Dim Max2 As Integer

    Dim Smin1 As String * 6
    Dim Smin2 As String * 6
    Dim Smax1 As String * 6
    Dim Smax2 As String * 6
    Dim Dsid1(8) As Byte                                        'Dallas ID 64 bits incl CRC
    Dim Dsid2(8) As Byte
    Dim Sds1 As String * 6
    Dim Sds2 As String * 6
    Dim Sc(9) As Byte
    Dim Liczbapomiarow As Long

    Dim _sek As Byte
    Dim Licz_8ms As Byte
    Dim _min As Byte
    Dim _god As Byte
    _god = 16

    Config Timer0 = Timer , Prescale = 256
    On Timer0 Odmierz_ls
    Enable Interrupts
    Enable Timer0
    Load Timer0 = 250

    Waa = 1wirecount()
    Dsid1(1) = 1wsearchfirst()
    Do
    Dsid2(1) = 1wsearchnext()
    Loop Until Err = 1
    Locate 1 , 1
    Lcd "CRC Sensor 1 ID"
    Wait 2
    Locate 1 , 1
    For Baa = 1 To 8
    Lcd Hex(dsid1(baa))
    Next
    Wait 2

    ' Second sensor
    If Dsid2(8) = Crc8(dsid2(1) , 7) Then
    Locate 2 , 1
    Lcd "CRC Sensor 2 ID"
    Wait 2
    Locate 2 , 1
    For Baa = 1 To 8
    Lcd Hex(dsid2(baa))
    Next
    End If
    Wait 2
    Cls
    Init
    Wait 1



    Do

    '-------------------------Wyswietlanie  temperatur
    If Ddd > 2 Then Ddd = 0
    If Ddd = 0 Then
    Locate 2 , 1
    Lcd "Wew:" ; Sds1 ; Chr(5) ; "C <" ; Smin1 ; Chr(6) ; Smax1 ; ">   "
    End If
    If Ddd = 2 Then
    Locate 2 , 1
    Lcd "Zew:" ; Sds2 ; Chr(5) ; "C <" ; Smin2 ; Chr(6) ; Smax2 ; ">   "
    End If



    Convallt                                                    ' "Convert ALL T on the 1w-bus"




    Waitms 1

    1wverify Dsid1(1)                                           'Issues the "Match ROM "
    'Locate 1 , 1
    If Err = 1 Then

    'Lcd "Err "                                                  'Err = 1 if something is wrong
    Elseif Err = 0 Then                                         'lcd " Sensor found"
    1wwrite &HBE
    Sc(1) = 1wread(9)                                           'read bytes into array
    If Sc(9) = Crc8(sc(1) , 8) Then
    Dg = Decigrades(sc(9))

    If Min1 > Dg Then Min1 = Dg
    If Max1 < Dg Then Max1 = Dg

    Incr Liczbapomiarow
    Smax1 = Str(max1)
    Smax1 = Format(smax1 , " 0.0")
    Smin1 = Str(min1)
    Smin1 = Format(smin1 , " 0.0")
    Sds1 = Str(dg)
    Sds1 = Format(sds1 , " 0.0")
    End If
    End If
    '---------------------------------------------

    1wverify Dsid2(1)
    'Locate 2 , 1
    If Err = 1 Then
    'Lcd "Ds Id2 not on bus "
    Elseif Err = 0 Then                                         ' lcd " Sensor found "
    1wwrite &HBE
    Sc(1) = 1wread(9)
    If Sc(9) = Crc8(sc(1) , 8) Then
    Dg = Decigrades(sc(9))

    If Min2 > Dg Then Min2 = Dg
    If Max2 < Dg Then Max2 = Dg

    Smax2 = Str(max2)
    Smax2 = Format(smax2 , " 0.0")
    Smin2 = Str(min2)
    Smin2 = Format(smin2 , " 0.0")
    Sds2 = Str(dg)
    Sds2 = Format(sds2 , " 0.0")
    End If
    End If




    '----------------------Wyswietlanie i  zalezności  czasu
    If _god > 23 Then
    _god = 0
    End If
    If _sek > 59 Then
    _sek = 0
    Incr _min
    End If
    If _min > 59 Then
    _min = 0
    Incr _god
    End If
    If _god > 9 Then
    Locate 1 , 1
    Lcd _god
    Else
    Locate 1 , 1
    Lcd " "
    Locate 1 , 2
    Lcd _god
    End If
    Locate 1 , 3
    Lcd ":"
    If _min > 9 Then
    Locate 1 , 4
    Lcd _min
    Else
    Locate 1 , 4
    Lcd "0"
    Locate 1 , 5
    Lcd _min
    End If
    Locate 1 , 6
    Lcd ":"
    If _sek > 9 Then
    Locate 1 , 7
    Lcd _sek
    Else
    Locate 1 , 7
    Lcd "0"
    Locate 1 , 8
    Lcd _sek
    End If
    Loop
    End

    '--------------Obsługa przerwania timera
    Odmierz_ls:
    Load Timer0 = 250
    Timer0 = Timer0 + 6
    Incr Licz_8ms
    If Licz_8ms = 125 Then
       Licz_8ms = 0
       Incr _sek
       Incr Ddd
    End If
    Return



    Sub Convallt
    1wreset                                                     ' reset the bus
    1wwrite &HCC                                                ' skip rom
    1wwrite &H44                                                ' Convert T
    End Sub
    '------------------------------------------------------------
    Function Decigrades(byval Sc(9) As Byte)
     Decigrades = 0
     Decigrades = Makeint(sc(1) , Sc(2))
     Decigrades = Decigrades * 10
     Decigrades = Decigrades / 16
    End Function


    Sub Init
    Min1 = 999                                                  ' to get a real value from start
    Min2 = 999
    End Sub



    Oczywiście port 1 wire podciągniety do +5V rezystorem 3,3 K


    Kolego atom1477 jeśli możesz to napisz czym się charakteryzuje ten tryb o którym piszesz, i jak się go obsługuje. W Helpie nie ma zupełnie nic na ten temat

    0
  • Pomocny post
    #11 22 Wrz 2009 17:00
    mirekk36
    Poziom 42  

    Jarosław J -->

    po pierwsze postaraj się jak najszybciej robić odpowiednie wcięcia w kodzie to będzie łatwiej nie tylko nam tutaj na forum analizować twój kod - ale tobie samemu będzie łatwiej a to jest nawet ważniejsze ;)

    po drugie masz tam gdzieś w tej swojej pętli głównej coś takiego:

    Code:
    Convallt                                                    ' "Convert ALL T on the 1w-bus" 
    
    Waitms 1


    czyli wysyłasz polecenie do wszystkich czujników na magistrali aby dokonały pomiaru temperatury a następnie czekasz 1ms??? tu albo jakiś czeski błąd - albo może źle doczytałeś - ale czujniki DS18B20 przy 12bitowej rozdzielczości potrzebują minimum 750ms czasu na dokonanie pomiaru więc gdybyś użył Wait 1 - czyli oczekiwanie 1 sekundę to już byłoby lepiej a tak? czujniki jeszcze robią pomiar a ty już próbujesz w dalszych liniach je sprawdzać i odczytywać - już tutaj mogą mnożyć ci się błędy odczytu temperatury bez względu na jakiekolwiek przerwania

    po trzecie - tak jak radził kolega atom1477 - postaraj się zastosować przed i po serii poleceń 1Wire już w pętli głównej czy w swojej procedurze Convallt - użyć poleceń cli i sei - aby na czas ich wykonywania wyłączać i włączać przerwania. To jest b.istotne - bo jeśli te "czasówki" zostaną zakłócone to całe odczyty też będą ci się wciąż rozjeżdżać

    Dodano po 6 [minuty]:

    a w linku poniżej znajdziesz przykład i objaśnienia jak w Bascomie użyć trybu CTC timera - o ile dla danego timera jest dostępny tryb CTC - to trzeba sobie w nocie PDF sprawdzić

    https://www.elektroda.pl/rtvforum/topic1418674.html

    0
  • #12 22 Wrz 2009 18:39
    Jarosław J
    Poziom 14  

    Ten błąd z 1 ms miałem w programie. Poprawiłem go z nadzieją że rozwiąże to problem, zastosowałem też polecenia CLI i SEI przy każdym poleceniu na 1W i nic

    Z początku myślałem, że się udało, bo przez około 5 minut, układ wskazywał mi poprawne dane następnie po tych 5 minytach - to samo Zmieniłem też troche program, żeby zaobserwować czy nie pojawia się zmienna ERR I okazało się że niewłaściwe wskazania następują w tym samym czasie w którym pojawia się zmienna ERR Tak więc ona jest powodem tych dziwnie wysokich wskazań. A raczej może nawet nie ona ale jakiś błąd co wywołuje tę zmienną. Układy mam podłączone bezpośrednio na płytkę, także długość przewodów nie sądzę, żeby odgrywała rolę.

    Mam jeszcze jedno pytanie. Czy zastosowanie tych dyrektyw CLI i SEI nie wpłynie mi znów na pracę zegara

    Przeczytałem posta o CTC i to dla mnie hardcore :) Mam nadzieję, że kiedyś to pojmę

    0
  • Pomocny post
    #13 25 Wrz 2009 01:55
    Andy74
    Poziom 24  

    Proponuję na początku programu (np. po deklaracji częstotliwości) dodać:

    Code:
    $swstack = 64
    
    $hwstack = 64
    $framesize = 32

    i przetestować jeszcze raz.
    Pozdrawiam
    Andy

    0
  • #14 23 Paź 2009 14:55
    Jarosław J
    Poziom 14  

    Andy74 Wielkie dzięki Podziałało i jak na razie działa. Przez dłuższy czas. Możesz tylko mi napisać co tak na prawdę się stało? Przyznam, że trochę się zniechęciłem do teo projektu, jednak nie dawało mi to spokoju. Byłem przekonany, że to jeszcze jedna jakaś nic nie znacząca rzecz. A tu odkopałem po kilku tygodniach i działa.

    0
  • #15 23 Paź 2009 18:47
    Andy74
    Poziom 24  

    Gdzieś już się rozpisywałem na ten temat, nie chce mi się powtarzać.
    Podam Ci jednak przydatne odnośniki do strony jednego z naszych forumowych kolegów:
    http://zbeegin.republika.pl/bashelp/bascom_heaps.html
    http://zbeegin.republika.pl/bashelp/d_swstack.html
    http://zbeegin.republika.pl/bashelp/d_hwstack.html
    http://zbeegin.republika.pl/bashelp/d_framesize.html

    Troszkę wysiłku i sam zrozumiesz w czym był problem ;)
    Powodzenia
    Andy

    0