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.

atmega8 + PCF8583 sprawdzenie programu

wojtektorr 14 Sty 2013 21:08 1491 4
  • #1 14 Sty 2013 21:08
    wojtektorr
    Poziom 14  

    Zaczynam temat z TWI w avr i już na początku napotkałem problemy, poniższy program ma za zadanie ustawić godzinę na PCF8583 oraz odczytywać ja co przerwanie zewnętrzne INT0 z układu PCF8583 i wypisywać ja na wyświetlaczu LCD. Funkcje napisałem na podstawie książki Mirosława Kardasia. Mam pytanie czy do tego układu PCF8583 konieczne jest podłączenie kwarcu i jeśli tak to jakiego? Proszę o sprawdzenie poprawności programu bo nie wyświetla godziny jedynie napis który wstawiam zaraz po rozpoczęciu main "ZEGAR RTC".

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 4
  • #2 14 Sty 2013 21:10
    piotrva
    Moderator na urlopie...

    1. Musisz podpiąć kwarc 32768Hz do PCF8583 - wszystko zresztą jest opisane w datasheetach.
    2. zmienne przechowujące dane powinny mieć atrybut volatile - są wykorzystywane w przerwaniu
    3. wyświetlanie na LCD w przerwaniu to nie za dobry pomysł
    4. poza tym musisz za każdym razem ustawić odpowiednią pozycję kursora - inaczej dane powędrują Bóg wie gdzie.

    0
  • #3 14 Sty 2013 22:31
    BlueDraco
    Specjalista - Mikrokontrolery

    A to przerwanie to się tak samo włącza? Bo jakoś nie zauważyłem, żebyś an nie zezwalał. No, ale skoro pisałeś na podstawie książki ww., to już pytań nie mam... ;)

    0
  • #4 14 Sty 2013 22:57
    piotrva
    Moderator na urlopie...

    Mogę zaręczyć (gdyż książka o której mowa to moja pierwsza książka o C dla AVR i z niej nabyłem wiele wiedzy i nawyków), że w książce tego typu kodów czy nawet jakichkolwiek przesłanek do pisania takiego kodu (bez zezwoleń na przerwanie, bez volatile gdzie trzeba) nie ma.
    Cóż, nie zawsze można oceniać nauczyciela po uczniach, pamiętajmy o krzywej gaussa ;)

    0
  • #5 21 Sty 2013 20:29
    wojtektorr
    Poziom 14  

    Program przekopiowałem już toczka w toczkę z płyty dołączonej do książki, oczywiście zmieniłem pod moje podłączneie do procesora ukłądu pcf8583 ale nadal nie wywołuje przerwania ten układ i nic nie mogę z niego zczytać. Jak sprawdzić czy czasem w jakiś sposób nie uszkodziłem tego układu? Jedyna różnica przy podłączniu odbiegająca od książki to nie podłączone alternatywne zasilanie bateryjne oraz brak kondensatora 22pF przy rezonatorze. Czy brak tego kondensatora może powodować niedziałanie PCF8583?

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Na wyświetlaczu mam jedynie aktualnie ustawioną godzinę więc wnioskuje że przerwanie nie występuje dlatego się czas nie zmienia.

    Dodano po 1 [godziny] 41 [minuty]:

    Rozwiązano, przerwa w połączeniu pinu INT0 z PCF8583

    0