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

Proszę o wyjaśnienie kodu dlaczego nie działa?

Ryju100 27 Gru 2011 18:25 1922 12
  • #1 27 Gru 2011 18:25
    Ryju100
    Poziom 12  

    Kolejny mój projekt się wypalił podczas uruchomienia:( Chciałem sobie wysterować włączanie swiateł i innych podzespołów w akwarium i miał to być mój projekt( w ramach nauki - coś trzeba w życiu robić w międzyczasie:))
    Chodzi o to aby ustawiać wartości przyciskami:) niby proste ale coś nie tak( dopiero zaczynam także proszę o wyrozumiałość) , wiadomo od razu można w programie ustawić zmienne ale gdzie ta frajda przełączania w menu:)
    a więc ustawienia przycisków:

    Code:
    Config Portb.2 = Input
    
             Portb.2 = 1
    Config Portc.1 = Input
             Portc.1 = 1
    Config Portc.0 = Input
             Portc.0 = 1
    Config Portb.5 = Input
             Portb.5 = 1

    'klawiatura

    Menu Alias Pinb.2
    Up Alias Pinc.1
    Esc Alias Pinc.0
    Down Alias Pinb.5


    Pętla:

    Code:
    Cls
    

    Do

    Gosub Calosc

    Locate 1 , 5
    Lcd "Akwarium"
    Locate 2 , 1
    Lcd H ; ":" ; M
    Locate 2 , 11
    Lcd Tmp ; Chr(1) ; "C"
    Locate 3 , 1
    Lcd "MENU ESC UP DOWN"
    Locate 4 , 2
    Lcd Chr(2)
    Locate 4 , 7
    Lcd Chr(2)
    Locate 4 , 10
    Lcd Chr(2)
    Locate 4 , 15
    Lcd Chr(2)

    Waitus 250

    Loop

    End


    Podprogramy:

    Code:
    Calosc:
    

    Gosub Temp
    Gosub Czas

    Debounce Menu , 0 , Ust_czas

    If X >= H And B >= M Then Swiatlo = 0 Else Swiatlo = 1
    If X_wyl >= H And B_wyl >= M Then Swiatlo = 1 Else Swiatlo = 0
    If C >= H And O >= M Then Co2 = 0 Else Co2 = 1
    If C_wyl >= H And O_wyl >= M Then Co2 = 1 Else Co2 = 0
    If G <= Tmp Then Grzalka = 0 Else Grzalka = 1
    If W >= Tmp Then Wiatrak = 0 Else Wiatrak = 1

    Return


    Code:
    Ust_czas:
    

    Do

    Locate 1 , 3
    Lcd "Ustaw czas"
    Locate 2 , 1
    Lcd H ; ":" ; M
    Locate 2 , 11
    Lcd Tmp ; Chr(1) ; "C"
    Locate 3 , 1
    Lcd "MENU ESC UP DOWN"
    Locate 4 , 2
    Lcd Chr(2)
    Locate 4 , 7
    Lcd Chr(2)
    Locate 4 , 10
    Lcd Chr(2)
    Locate 4 , 15
    Lcd Chr(2)

    Waitus 100

    If H > 23 Then H = 00
    If M > 59 Then M = 00

    If Up = 0 Then
    Waitus 25
    If Up = 0 Then Incr M
    If Down = 0 Then
    Waitus 25
    If Down = 0 Then Incr H
    If Menu = 0 Then
    Waitus 25
    If Menu = 0 Then Gosub Ust_swiat




    If Esc = 0 Then
    Waitus 25
    If Esc = 0 Then Gosub Calosc

    End If
    End If
    End If
    End If

    Loop
    '********

    Ust_swiat:

    Do

    Locate 1 , 2
    Lcd "Wlacz swiatala"
    Locate 2 , 1
    Lcd X ; ":" ; B
    Locate 2 , 11
    Lcd Tmp ; Chr(1) ; "C"
    Locate 3 , 1
    Lcd "MENU ESC UP DOWN"
    Locate 4 , 2
    Lcd Chr(2)
    Locate 4 , 7
    Lcd Chr(2)
    Locate 4 , 10
    Lcd Chr(2)
    Locate 4 , 15
    Lcd Chr(2)

    Waitus 100


    If X > 23 Then X = 0
    If B > 59 Then B = 0


    If Up = 0 Then
    Waitus 25
    If Up = 0 Then Incr X
    If Down = 0 Then
    Waitus 25
    If Down = 0 Then Incr B
    If Menu = 0 Then
    Waitus 25
    If Menu = 0 Then Gosub Ust_swiat_wyl
    If Esc = 0 Then
    Waitus 25
    If Esc = 0 Then Gosub Calosc

    End If
    End If
    End If
    End If

    Loop
    '*********

    Ust_swiat_wyl:

    Do

    Locate 1 , 1
    Lcd "Wylacz swiatla"
    Locate 2 , 1
    Lcd X_wyl ; ":" ; B_wyl
    Locate 2 , 11
    Lcd Tmp ; Chr(1) ; "C"
    Locate 3 , 1
    Lcd "MENU ESC UP DOWN"
    Locate 4 , 2
    Lcd Chr(2)
    Locate 4 , 7
    Lcd Chr(2)
    Locate 4 , 10
    Lcd Chr(2)
    Locate 4 , 15
    Lcd Chr(2)

    Waitus 100

    If X_wyl > 23 Then X_wyl = 00
    If B_wyl > 59 Then B_wyl = 00

    If Up = 0 Then
    Waitus 25
    If Up = 0 Then Incr X_wyl
    If Down = 0 Then
    Waitus 25
    If Down = 0 Then Incr B_wyl
    If Menu = 0 Then
    Waitus 25
    If Menu = 0 Then Gosub Dwutlenek
    If Esc = 0 Then
    Waitus 25
    If Esc = 0 Then Gosub Calosc

    End If
    End If
    End If
    End If

    Loop

    '***********
    Dwutlenek:

    Do

    Locate 1 , 2
    Lcd "Wlaczenie CO2"
    Locate 2 , 1
    Lcd C ; ":" ; O
    Locate 2 , 11
    Lcd Tmp ; Chr(1) ; "C"
    Locate 3 , 1
    Lcd "MENU ESC UP DOWN"
    Locate 4 , 2
    Lcd Chr(2)
    Locate 4 , 7
    Lcd Chr(2)
    Locate 4 , 10
    Lcd Chr(2)
    Locate 4 , 15
    Lcd Chr(2)

    Waitus 100

    If C > 23 Then C = 0
    If O > 59 Then O = 0


    If Up = 0 Then
    Waitus 25
    If Up = 0 Then Incr C
    If Down = 0 Then
    Waitus 25
    If Down = 0 Then Incr O
    If Menu = 0 Then
    Waitus 25
    If Menu = 0 Then Gosub Dwutlenek_wyl
    If Esc = 0 Then
    Waitus 25
    If Esc = 0 Then Gosub Calosc

    End If
    End If
    End If
    End If

    Loop

    '*********

    Dwutlenek_wyl:

    Do

    Locate 1 , 2
    Lcd "Wylaczenie CO2"
    Locate 2 , 1
    Lcd C_wyl ; ":" ; O_wyl
    Locate 2 , 11
    Lcd Tmp ; Chr(1) ; "C"
    Locate 3 , 1
    Lcd "MENU ESC UP DOWN"
    Locate 4 , 2
    Lcd Chr(2)
    Locate 4 , 7
    Lcd Chr(2)
    Locate 4 , 10
    Lcd Chr(2)
    Locate 4 , 15
    Lcd Chr(2)

    Waitus 100

    If C_wyl > 23 Then C_wyl = 0
    If O_wyl > 59 Then O_wyl = 0


    If Up = 0 Then
    Waitus 25
    If Up = 0 Then Incr C_wyl
    If Down = 0 Then
    Waitus 25
    If Down = 0 Then Incr O_wyl
    If Menu = 0 Then
    Waitus 25
    If Menu = 0 Then Gosub Temperatura_akwa
    If Esc = 0 Then
    Waitus 25
    If Esc = 0 Then Gosub Calosc

    End If
    End If
    End If
    End If

    Loop


    '***********

    Temperatura_akwa:

    Do

    Locate 1 , 1
    Lcd "Temperatura"
    Locate 2 , 1
    Lcd "Heat:" ; G ; " Wiatrak:" ; W
    Locate 3 , 1
    Lcd "MENU ESC UP DOWN"
    Locate 4 , 2
    Lcd Chr(2)
    Locate 4 , 7
    Lcd Chr(2)
    Locate 4 , 10
    Lcd Chr(2)
    Locate 4 , 15
    Lcd Chr(2)

    Waitus 100

    If G > 32 Then G = 18
    If W > 35 Then W = 18


    If Up = 0 Then
    Waitus 25
    If Up = 0 Then Incr G
    If Down = 0 Then
    Waitus 25
    If Down = 0 Then Incr W
    If Menu = 0 Then
    Waitus 25
    If Menu = 0 Then Gosub Ust_swiat
    If Esc = 0 Then
    Waitus 25
    If Esc = 0 Then Gosub Calosc

    End If
    End If
    End If
    End If

    Loop


    Przepraszam za wygląd programu ale dopiero zaczynam:( Czy dobrze się za to zabrałem??? sprawa wygląda tak że po naciśnięciu menu wchodze na pierwszy podprogram i koniec:) moge tylko ustawić bodajże minuty(M) i nawet kolejne przyciśnięcie menu nic nie daje:( o co chodzi w czym rzecz ??? co zrobiłem źle??
    Myślałem nad tym trochę i martwy punkt:) nie mogę eksperymentować bo utknąłem:) a lubię się potem uczyć ( coś dodawać coś zmieniać) jeśli program jest ok a tu lipa:)
    Dziękuje i czekam jeśli coś mogą koledzy pomóż podpowiedzieć,
    Pozdrawia Ryju100

    0 12
  • #2 28 Gru 2011 08:54
    Greg
    Poziom 20  

    Przeanalizuj sobie dobrze program najlepiej na symulatorze krok po kroku i zobaczysz . Błąd jest wg mnie już na samym początku . Skaczesz po programie jak ping pong. Jaki jest sens wchodzić w program żeby po pierwszej instrukcji wskoczyć w podprogram , z którego natychmiast wychodzisz i wskakujesz w inny podprogram! ??? Jest to nielogiczne . Wg mnie ten program tylko zmienia podprogramy dlatego nie jesteś w stanie nic więcej zrobić. Wychodzenie z pętli powinno nastąpić np. w momencie wystąpienia jakiegoś warunku . Poza tym nie widzę deklaracji zmiennych ,programów .Skoro dopiero zaczynasz pisz program etapami i często sprawdzaj czy to co napisałeś działa łatwiej nad tym zapanować i wychwycić błąd.

    Powodzenia

    0
  • #3 28 Gru 2011 10:35
    Ryju100
    Poziom 12  

    Dziękuje koledze:) Ogólnie to myślałem bardzo długo nad tym jak te wszystkie zmienne do których się potem będą odnosić warunki zrobić ustawialne czterema przyciskam i wymyśliłem coś takiego aby w każdym podprogramie były ustawialne poszczególne zmienne ale to niestety nie zadziałało . Wczoraj siedziałem jeszcze do pierwszej w nocy czytając , przeglądając projekty na necie i nic:( Mógłbym prosić o jakieś sugestie dotyczące jak to wszystko ogarnąć i zmieniać zmienne przyciskami:)
    Z góry dziękuje:)

    0
  • #4 28 Gru 2011 13:47
    Greg
    Poziom 20  

    Jedno podstawowe pytanie . Rozumiem że używasz bascoma AVR?? Czy listing programu wkleiłeś w całości ?? bo jeżeli tak to nie sądzę żeby udało się to w ogóle skompilować. Odwołujesz się np do podprogramu TEMP a nigdzie nie widzę takiego podprogramu . Na twoim miejscu żeby zrozumieć jaka jest logika działania procesora ograniczyłbym się np do napisania programu , który realizuje tylko ustawienie temperatury. Resztę dopiszesz później. Zbyt rozbudowany program nie pozwala zrozumieć na czym polega błąd . I tak jak powiedziałem wcześniej symulator w dłoń i krok po kroku analizuj program wtedy znajdziesz i zrozumiesz błąd. Jak podam ci teraz gotowca do niczego sensownego to nie doprowadzi.

    piszesz :w pętli Gosub Calosc w podprogramie Calosc pierwsze co procesor wykonuje to skok do podprogramu Temp (którego nie ma) nie lepiej od razu skoczyć to Temp?? zawsze to kilka bajtów pamięci zaoszczędzone .

    0
  • #5 28 Gru 2011 18:11
    dondu
    Moderator Mikrokontrolery Projektowanie

    Ryju100 napisał:
    Kolejny mój projekt się wypalił podczas uruchomienia:( Chciałem sobie wysterować włączanie swiateł i innych podzespołów w akwarium ...

    Co znaczy cyt. "... się wypalił podczas uruchomienia ..."?
    Faktycznie poszedł z dymem?

    0
  • #6 29 Gru 2011 00:07
    Ryju100
    Poziom 12  

    Nie nie :) nie poszedł z dymem tylko sie nie uruchomił tak jak chciałem:)
    Kolego Greg to jest przedstawiona tylko część całości projektu. kod odpowiedzialny za temp działa, zegarek także:) powoli zmierzam do sedna projektu czytając i próbując różnych kodów, różnych możliwości bascom'a;) Na ten moment+wyświetlam czas+temperaturkę, zbudowałem menu ustawiania czasu godz+-1 , minuta także zapis ustawionych wartości;0 , idąc tym tokiem rozumowania spróbuje poustawiac wartości zmiennych:) powinno się udać:) Napisze jak zakończę czy udało się:) Już mnie cieszy że tak dużo zrobiłem:)
    A jeśli chodzi o tamte części programu to bez problemu przechodziły przez kompilator i programowałęm tym procka, wyświetlało temp i czas( jeszcze nie programowalny ale to już był krok do przodu:) tylko po wejściu w ustaw czas blokował się całkiem:) ale zapomnijmy o tym bo widzę że nie tędy droga;)

    Dodano po 4 [godziny] 1 [minuty]:

    Dobra:) udało się:) Wszystkie podprogramy są w pełni dostępne i jest możliwość ustawiania zmiennych:) ale wdał się kolejny problem:( Po ustawieniu zmiennej w podprogramie jak przenieść ją do pętli głównej??? Czy to trzeba ją zapisać w eeprom??? i potem w pętli odczytać??? ale czytałem że nie można tej pamięci używać w pętli nieskończonej???? Jak to zrobić???
    a oto pętla główna:

    Code:
    Cls
    

    Petla:
    Do

       Gosub Temp
       If Menu = 0 Then Gosub Ustaw
       Gosub Wysw_menu
       Gosub Wysw_czas
       Gosub Wysw_temp

    If X <= H And B <= M Or X_wyl >= H And B_wyl >= M Then Swiatlo = 0 Else Swiatlo = 1
    If C <= H And O <= M Or C_wyl >= H And O_wyl >= M Then Co2 = 0 Else Co2 = 1
    If G <= Tmp Then Grzalka = 0 Else Grzalka = 1
    If W >= Tmp Then Wiatrak = 0 Else Wiatrak = 1



    Loop
    Return
    End


    A to przykładowy podprogram:

    Code:
    Ust_swiatla:
    

       Locate 1 , 1
       Lcd "Wlacz swiatlo"
       Locate 2 , 11
       Lcd Tmp ; Chr(1) ; "C"
       Waitms 100
       Locate 2 , 1
       If X < 10 Then Lcd " "
       Lcd X ; ":"
       If B < 10 Then Lcd "0"
       Lcd B
       Locate 3 , 1
       Lcd Chr(3)
       Lcd Chr(3)
       Lcd ":mm"
       Waitms 100
       Do
          If Up = 0 Then Incr X
          If X > 23 Then X = 0
          If Down = 0 Then
             If X = 0 Then X = 23 Else Decr X
              End If
          If Esc = 0 Then
          Waitms 100
          Cls
          Gosub Petla
          End If
          Locate 2 , 1
          If X < 10 Then Lcd " "
          Lcd X

          Waitms 100
          Loop Until Menu = 0

       Locate 3 , 1
       Lcd "gg:mm"

       Do
       Locate 3 , 4
       Lcd Chr(3)
       Lcd Chr(3)
       If Up = 0 Then Incr B
       If B > 59 Then B = 0
       If Down = 0 Then
          If B = 0 Then B = 59 Else Decr B
          End If
       If Esc = 0 Then Gosub Ust_swiatla
       Locate 2 , 4
       If B < 10 Then Lcd "0"
       Lcd B
       Waitms 100
       Loop Until Menu = 0

       Locate 3 , 1
       Lcd " OK zapisuje..."
       Wait 1
       Cls
       Gosub Ust_swiatla_wyl
    Return


    I właśnie chodzi mi o to jak wyciągnąć zmienne w tym przypadku X oraz B aby mógł być spełniony warunek w pętli głównej?? Gdyż w tym wypadku bawię się w zmienianie wartości zmiennych tylko i wyłącznie w podprogramie:( a wychodząc już ich nie ma w pętli głównej:(
    Bardzo proszę o poradę..
    P.S
    program wgrany na procka także wiem że do tego miejsca działa jak należy:))

    0
  • #7 01 Sty 2012 11:46
    Ryju100
    Poziom 12  

    Uporałem się z kłopotem zapisu zmienny. Ale wdał sie problem który jest dla mnie nie możliwy i którego w życiu bym sie nie spodziewał:( Aż z tego wszystkiego napisałem króciutki programik żeby to sprawdzić i nie wiem dlaczego to nie działa a to podstawa tego wiekszego projektu.
    Problem polega na załączaniu pinów po przejściu przez odpowiednie równania.
    a oto części kodu:
    konfiguracja i część zmiennych:

    Code:
    Config Portd.0 = Output
    
            Portd.0 = 1
    Config Portd.1 = Output
             Portd.1 = 1
    Config Portd.3 = Output
             Portd.3 = 1
    Config Portc.3 = Output
             Portc.3 = 0

    Config Portb.2 = Input : Set Portb.2
    Config Portc.1 = Input : Set Portc.1
    Config Portc.0 = Input : Set Portc.0
    Config Portb.5 = Input : Set Portb.5


    'klawiatura

    Menu Alias Pinb.2
    Up Alias Pinc.1
    Esc Alias Pinc.0
    Down Alias Pinb.5

    'Podłączenia

    Co2 Alias Pind.1
    Grzalka Alias Pind.3
    Swiatlo Alias Pind.0
    Wiatrak Alias Pinc.3
    Led Alias Pinc.5

    Dim T1 As Single
    Dim T2 As Single
    Dim T3 As Byte
    Dim B1 As Byte , B2 As Byte , R As Byte
    Dim Tmp As String * 6
    Dim Znak As String * 1
    R = &HFF
    Dim M As Byte
    Dim S As Byte
    Dim H As Byte
    Dim Godz As String * 9



    Pętla:

    Code:
    Cls
    


    Do

       Gosub Temp
    If T3 <= 30 Then Grzalka = 0 Else Grzalka = 1
    If T3 >= 27 Then Wiatrak = 1 Else Wiatrak = 0
       Gosub Wysw_menu
       Gosub Wysw_czas
       Gosub Wysw_temp



    Loop
    End


    Podprogram temperatury:
    Code:
    Temp:
    
    R = &HFF
    1wreset
    1wwrite &HCC
    1wwrite &H44
    Waitms 750
    1wreset
    1wwrite &HCC
    1wwrite &HBE

    B1 = 1wread()
    B2 = 1wread()

    1wreset

    If B2 >= 248 Then
    B1 = R - B1
    B2 = R - B2
    Znak = "-"
    Else
    Znak = "+"
    End If
    T1 = B1 / 16
    T2 = B2 * 16
    T1 = T1 + T2
    T3 = T1

    Tmp = Fusing(t1 , "##.&")

    Return


    Podprogram jest sprawdzony i działa pokazuje temp. ale problem jest w równaniu w pętli jeśli temp jest mniejsza lub większa( tu zależy od potrzeb) chciałbym aby odpowiedni pin przechodził w odpowiedni stan czy to wysoki czy też niski w zależności od podzespołów użytych do konstrukcji płytki. Ale ten programik nie działa nie przełącza portów po przekroczeniu ust temperatur. Ustawiając pin już w konfiguracji odpowiednio działa załącza przykładowo diodkę a programowo chcąc aby robił to program( ten w przykładzie wyżej) nie działa co jest nie tak???
    Ten sam problem mam z porównaniem minut i godzin z liczbą załączając lub wyłączając odpowiedni port( w przykładzie nie ma tego równania bo chciałem sie narazie skupić na temperaturze) również nie działa w czym rzecz co jest źle napisane w programie proszę o odpowiedz gdyż to ustrojstwo spędza mi sen z powiek:)
    P.s.
    takie porównanie robiłe w innym projekcie tylko odnosząc się do napięcia i działało więc nie wiem dlaczego w tym przypadku to nie działa.

    0
  • #8 05 Sty 2012 20:07
    Ryju100
    Poziom 12  

    Głupi błąd:) Już rozwikłany:) aliasy odpowiadające wyjściom powinny być nie np .
    Grzałka alias pinx.x ale grzalka alias portx.x. czyli taka głupia prosta sprawa:)
    ale mam problem z zegarem na pcf8583 niby wszystko jest ok liczy czas ustawia się ale czasami (nawet częściej) pokazuje aktualną godzinę i nagle pokazuje np.:
    165:165:165 i po sekundzie wraca do stanu aktualnej godziny w czym tkwi problem??? Proszę o odpowiedz.
    ps.
    wyświetlacz wygląda tak np:
    18:45:12 27.8°C ----po chwili----->165:165:165727.8°C---i po sekundzie----->
    18:45:14727.8°C
    O co to chodzi???? bo zgłupiałem:)

    0
  • #9 05 Sty 2012 20:49
    Jaca
    Poziom 28  

    Maskujesz odpowiednie bity rejestrów czasu PCF8583 ?

    ps. Pokaż kod obsługi PCF'a...

    0
  • #10 05 Sty 2012 21:41
    Ryju100
    Poziom 12  

    Wszystko dotyczące pcf'a wygląda tak:

    Code:
    Config Scl = Portc.5
    
    Config Sda = Portc.4                                        'konfiguracja i2c
    I2cinit

    Code:
    Wysw_czas:
    
       I2cstart
       I2cwbyte 160
       I2cwbyte 2
       I2cstart
       I2cwbyte 161
       I2crbyte S , Ack
       I2crbyte M , Ack
       I2crbyte H , Nack
       I2cstop
       Waitms 100
       H = Makedec(h) : M = Makedec(m) : S = Makedec(s)
       Waitms 50

       Locate 2 , 1
       Godz = ""
       If H < 10 Then Godz = " "
       Godz = Godz + Str(h) + ":"
       If M < 10 Then Godz = Godz + "0"
       Godz = Godz + Str(m)
       Godz = Godz
       Godz = Godz + ":"
       If S < 10 Then Godz = Godz + "0"
       Godz = Godz + Str(s)
       Lcd Godz

       Waitms 100

    Return


    Ustaw:
       Cls
       Locate 1 , 4
       Lcd "Ustaw czas"
       Locate 2 , 11
       Lcd Tmp ; Chr(1) ; "C"
       Waitms 100
       Locate 2 , 1
       If H < 10 Then Lcd " "
       Lcd H ; ":"
       If M < 10 Then Lcd "0"
       Lcd M
       Locate 3 , 1
       Lcd Chr(3)
       Lcd Chr(3)
       Lcd ":mm"
       Waitms 100

       Do
        If Up = 0 Then Incr H
        If H > 23 Then H = 0
        If Down = 0 Then
           If H = 0 Then H = 23 Else Decr H
           End If
        If Esc = 0 Then
        Waitms 150
        Cls
        Gosub Petla
        End If
        Locate 2 , 1
        If H < 10 Then Lcd " "
        Lcd H
        Waitms 150
        Loop Until Menu = 0

       Locate 3 , 1
       Lcd "gg:mm"

       Do
       Locate 3 , 4
       Lcd Chr(3)
       Lcd Chr(3)
       If Up = 0 Then Incr M
       If M > 59 Then M = 0
       If Down = 0 Then
          If M = 0 Then M = 59 Else Decr M
          End If
       If Esc = 0 Then Gosub Ustaw
       Locate 2 , 4
       If M < 10 Then Lcd "0"
       Lcd M
       Waitms 100
      Loop Until Menu = 0

      Locate 3 , 1
      Lcd " OK zapisuje..."
      Wait 1

      H = Makebcd(h)
      M = Makebcd(m)
      S = 0
      I2cstart
      I2cwbyte 160
      I2cwbyte 8
      I2cstop
      I2cstart
      I2cwbyte 160
      I2cwbyte 2
      I2cwbyte S
      I2cwbyte M
      I2cwbyte H
      I2cstop
      Cls
      Gosub Ust_swiatla

    Return


    tak wygląda cała obsługa pcf'a w pętli są tylko porównania odnośnie godzin i minut żeby załączały odpowiednie porty.

    A co to takiego maskowanie??? Dopiero zaczynam więc nie znam dokładnie terminologii??

    0
  • #11 06 Sty 2012 18:33
    Ryju100
    Poziom 12  

    Dobra uporałem się z problemem:) Nóżka A0 odlutowała się od masy podczas dolutowywania poszczególnych podzespołów:) i wprowadzało zakłócenia w odbiorze danych:) teraz jest ok ale dosyć ostro spieszy ale to pewnie kwestia dopasowania kondziołków:)

    0
  • #12 07 Sty 2012 17:23
    Ryju100
    Poziom 12  

    Czy moglibyście mi wyjaśnić jak zapisać dane do eeprom żeby po wyłączeniu i włączeniu zasilania dane zostały w pamięci???
    I coś dziwnego zauważyłem z całością programu:) zostawiłem wczoraj w kuchni cały sprzęcior i włączyłem nastawiając zegar i rano godzina była idealna:)(głównie chodzi mi o minuty:) raz na tydzień mogę korygować bez problemu) więc pomyślałem że wystartuje już w akwarium:) Pojechałem do miasta i po upływie ok 4 godzin całość się rozbiegała już o ok 10 min:) heheheheh:) co jest grane że taka rozbieżność????

    0
  • #13 08 Sty 2012 23:50
    Ryju100
    Poziom 12  

    Dziękuje Wszystkim :) za pomoc. Nie obejdzie się bez podziękowań gdyż bez waszej pomocnej dłoni nic bym nie zdziałał:)problem rozwiązany:) Dzięki;)

    0