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

Atmega32 nie mogę ustawić zegara.

inspector_electro 15 Sty 2013 17:36 2013 12
  • #1 15 Sty 2013 17:36
    inspector_electro
    Poziom 22  

    Witam Panów.
    Czy mógłby mi ktoś powiedzieć gdzie w tym kodzie jest błąd?. Siedzę od rana , i ... nie mogę znaleźć. Wklejałem już różności do tego kodu, i jak nie błąd kompilacji ,to zero zmiany. Zegar działa prawidłowo tylko że nie mogę go ustawić bo wraca z powrotem do stanu przed ustawienia, lub resetuje do 00:00:00.
    Jestem jeszcze zbyt cienki żeby samemu to zrobić, dla tego proszę o wyrozumiałość.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0 12
  • #3 15 Sty 2013 21:03
    inspector_electro
    Poziom 22  

    To nie wulgaryzm ,tylko zamiast przecinka ;).Syntaxa nie udało mi się zrobić bo za każdym razem miałem to samo.Chodzi oto, aby kod wstawić w nawias czy jak? .Podtrzymanie mam ale tu chodzi oto, że jak ustawiam mu np.20:25:13 to wraca do ustawień fabr. po naciśnięciu enter.

    Zastanawia mnie jeszcze to:

    [
    Sub Saveandexit() 'zapis i wyjscie z trybu ustawiania
    Call Storetime(second , Minute , Hour , Day , Month , Year , Weekday)
    Cur_mode = 0
    End Sub


    Sub Cancel()
    Cur_mode = 0 'wyjscie z trybu ustawiania bez zapisywania
    End Sub]

    0
  • #4 15 Sty 2013 21:25
    piotrva
    Moderator na urlopie...

    Kod wstaw między znacznik [syntax=basic4gl ] a (tu kod) [ /syntax]
    A do testów zegarka może zacznij od prostszego kodu, bo ten jest mocno pogmatwany.
    Spróbuj zwiększyć framesize, swstack i hwstack

    0
  • #5 16 Sty 2013 02:31
    oj
    Poziom 42  

    inspector_electro napisał:
    Zegar działa prawidłowo

    Czyli po włączeniu zasilania jest odczytywany PCF8583, na wyświetlaczu idą sekundy, minuty.

    Co by wykluczyło:
    "Czy adres sprzętowy PCF8583 pin3 A0 ustawiony jest prawidłowo - pin do masy ?"
    "Czy linie SDA SCL są podciągnięte rezystorami zewnętrznymi ?"

    0
  • #6 16 Sty 2013 07:51
    inspector_electro
    Poziom 22  

    Tak sekundy idą, brak krzaków na LCD.Pin3 o adresie A0 podciągnięty jest przez rezystor do VCC ponieważ gdy podepnę go do GND ,to mam na LCD 165:165:165.Linie sda i scl także podciągnięte do VCC przez rezystory 4,7k.
    Zauważyłem ciekawą żecz.Jeżeli ustawiam sam czas to mi go zapisze.Jeżeli ustawiam czas i datę, to nie przyjmuje.Jeżeli ustawiam osobno nazwę dnia tygodnia---->zatwierdź ,jest ok .Wchodzę jeszcze raz ustawiam dzień miesiąca--->zatwierdź, jest ok.Numer miesiąca---->zatwierdź, jest ok.No i rok tak samo.Czyli żeby go ustawić muszę za każdym razem wchodzić do menu,ustawiając kolejno - nazwę dnia tygodnia,numer dnia miesiąca,numer miesiąca, no i rok.W ten sposób dopiero działa jak należy.Da radę coś z tym zrobić?

    0
  • #7 19 Sty 2013 11:52
    inspector_electro
    Poziom 22  

    Czy jest mi w stanie ktoś pomóc? Próbowałem , myślałem że jest jakiś błąd w adresowaniu zapisu do PCF-a ,ale nic dalej to samo.Nie mogę znaleźć błędu.
    Zlitujcie sie.
    Tamten kod u góry jest do bani.Wklejam ten "dobry".Przepraszam za pomyłkę.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #8 19 Sty 2013 12:01
    piotrva
    Moderator na urlopie...

    1. Zwiększ parametry hwstack, swstack, framesize
    2. uprość ten program do testów. Ogólnie metodyka testów wygląda tak, że jak coś Ci nie działa to zostawiasz w programie TYLKO kod odpowiedzialny za tę właśnie rzecz i dopiero po jej uruchomieniu dopisujesz (przywracasz) resztę.

    0
  • #9 19 Sty 2013 13:01
    inspector_electro
    Poziom 22  

    Dzięki Ci jesteś wielki! Będę musiał jeszcze dużo się nauczyć.Kombinowałem z tym kodem na różne sposoby ,ale nie wpadłem na to aby dodać:
    $hwstack = 340
    $swstack = 128
    $framesize = 128
    Skupiłem się na czym innym.Czy w razie czego będę mógł Ci zawrócić jeszcze głowę?

    0
  • #11 19 Sty 2013 13:31
    inspector_electro
    Poziom 22  

    Wstyd się przyznać ,ale zaczynam praktycznie od zera.Sporo wiem ,ale jeszcze nie na tyle.Znacznie lepiej mi idzie z hardware.Mege32 mam od 2 tygodni i programowana już 496 razy :).Czytam praktykuję i przeglądam ,ale u mnie jest tak że rzucam się od razu na głęboką wodę.

    0
  • #12 19 Sty 2013 13:42
    piotrva
    Moderator na urlopie...

    496/4 dni to niewiele. Ja czasem dziennie robię po 100 programowań w początkowej fazie pisania kodu, gdy waśnie testuję funkcje komunikacji z hardware punkt po punkcie ;)
    I wierz mi z doświadczenia powiem, że warto testować wszystko bardzo małymi partiami - bo łatwiej znaleźć błąd we właśnie dopisanych 20 linijkach, niż potem po 2 dniach w jednej z 10 000 linijek ;)

    0
  • #13 19 Sty 2013 13:45
    inspector_electro
    Poziom 22  

    No tak.Próbuję właśnie dodać przed startem zegara test i2c.Będę widział czy pcf jest wykrywany na adr. 160/161.

    No i znowu to samo nie moge go ustawić.Poprostu się cofa do stanu z przed ustawienia ,lub losowo ustawia.Pomocy! nie mam już sił.

    Już wiem oco tu chodzi,ale nie wiem gdzie to zmienić.Chodzi o 3 bit rejestru kontrolnego.Poczytałem troche postów i pdf-a ,ale nie wiem dalej jak i gdzie to zmienić.Naprowadzi mnie ktoś?

    0