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

[bascom] przerwania i DS1307 - konfiguracja uC i RTC

smithpl 04 Lut 2012 20:21 2093 10
REKLAMA
  • #1 10495740
    smithpl
    Poziom 15  
    Witam,

    mam mały problem.
    Zbudowałem układ w którym SQW z DS1307 wywołuje mi flagę na INT1 Atmega16.
    Na tej podstawe wiem kiedy odczytać czas do wyświetlania czasu - to działa poprawnie.

    Jednak chce tez wykorzystywać go do zliczania sekund i tu jest problem.
    Bo zliczanie jest jakby co 2... ( liczba wyswietla sie co 2: 1,3,5,7,9 )
    mimo iz uplywa faktycznie 1,2,3,4,5 sekund.

    oto kawałki kodu:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Kod: text
    Zaloguj się, aby zobaczyć kod


    Kod: text
    Zaloguj się, aby zobaczyć kod


    Po dodaniu
    Kod: text
    Zaloguj się, aby zobaczyć kod


    obserwuje parę dziwnych objawów.
    Od momentu kiedy włączona jest obsługa przerwań i INT1 przyjmuje zapytania,
    system dziwnie się zachowuje, czasami gaśnie wyświetlacz, sam wchodzi do menu realizowanym na guzikach. parę razy załącza wyjścia,
    Jeżeli wyłączę obsługę przerwań wszystko wraca do normy.
    Układ jest taktowany wewnętrznym kwarcem.
    ds1307 podciągnięty jest opornikami 22k dla na wszystkich 3 pinach do zasilania +5V

    Może ktoś miał taki efekt?
  • REKLAMA
  • #2 13327964
    smithpl
    Poziom 15  
    czy ma ktos pomysl?
  • REKLAMA
  • #3 13328163
    smithpl
    Poziom 15  
    Witam,

    mam problem ze zmianą konfiguracji mojego DS1307 z Atmega16

    Aktualnie DS1307 ma ustawiony wystawianie impulsu co 1Hz.
    Chciałbym to zmienić na wartość 32kHz

    Ustawiłem wartości zgodnie z dokumentacją, zapisałem do DS'a ale układ nadal wystawia impuls co 1Hz

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #5 13328374
    smithpl
    Poziom 15  
    Więc tak:

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #7 13328471
    smithpl
    Poziom 15  
    OK, już działa i zmienia czestotliwość.

    Pozostaje 1 pytanie.
    Jak ustawie przerwanie co 32kHz to układ wystawia przerwanie dla Atmega.
    Problem w tym ze wglada tak jakby ta czynność tak obciażała Atmega16, że nie ma on już czasu na normalne obsługiwanie programu.

    Dzięki w/w funkcji chciałbym uzyskać taki efekt gdzie będe mógł zliczać czas 100ms.
  • REKLAMA
  • #9 13328490
    smithpl
    Poziom 15  
    No wlasnie zauwazylem, pozostaje kwestia jak popranie obsluzyc te przerwania
  • #10 13328494
    piotrva
    VIP Zasłużony dla elektroda
    smithpl napisał:

    Po dodaniu
    Kod: text
    Zaloguj się, aby zobaczyć kod




    Użyj polecenia Config do konfiguracji zbocza - to się nasuwa na samym początku.

    Dodano po 34 [sekundy]:

    I pokaż CAŁY program.

    Dodano po 2 [minuty]:

    Scalam tematy - dotyczą tego samego problemu.
  • #11 13328537
    smithpl
    Poziom 15  
    Cały program ma ponad 1500 linii więc cały soft nic tu nie wniesie.

    Aktualny wycinek dotyczący w/w tematu:

    Kod: text
    Zaloguj się, aby zobaczyć kod
REKLAMA