Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 13:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
 Tytuł: ds3231
PostNapisane: 14 lip 2018, o 15:31 
Offline
Użytkownik

Dołączył(a): 22 mar 2014
Posty: 52
Pomógł: 0

Witam, bawię się układem zegara rtc DS3231.
Zegar i kalendarz uruchomiłem i działa fajnie, ale mam problem z alarmami.
Może mi ktoś napisać jak sterować tymi alarmami?
Potrzebuję zrobić program, który będzie reagował na przerwania od tego rtc i wybudzał procesor, następnie robił jakiś pomiar zapisywał do eepromu i procesor znów się będzie usypiał.
Alarm ten chciałbym ustawiać aby to przerwanie na wyjściu SQW/INT występowało co 6 minut.
Oczywiście ten program sobie sam napiszę, ja tylko chcę aby ktoś mi napisał jak uruchomić i jak ustawiać czas w tym alarmie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ds3231
PostNapisane: 14 lip 2018, o 16:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć
Jak ustawiasz sobie datę i czas przy starcie DS-a po raz pierwszy?
Zrób tak samo dla alarmu tylko ustawiając czas zapisujesz rejestry 0x00,0x01,0x02 dla daty 0x03 do 0x06
Teraz dla alarmu poczynając od rejestru 0x07 czyli sekundy a kończąc na 0x0A czyli dzień miesiąca
Funkcja mogłaby wyglądać tak
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


funkcja nie jest sprawdzona wiec przetestuj. Pamiętaj również o ustawieniu przerwania na INT scalaka dla alarmu

pozdrawiam

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ds3231
PostNapisane: 14 lip 2018, o 20:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 mar 2014
Posty: 150
Lokalizacja: Staszów
Pomógł: 12

Nie bardzo widzę, w jaki sposób jesteś w stanie otrzymać przerwanie od tego zegara co 6 minut.
Na stronie 12 noty katalogowej tego zegara masz wyszczególnione sytuacje, które można ustawić, aby wystąpiło przerwanie (co sekundę, co minutę, gdy odpowiadają sobie minuty i sekundy, gdy odpowiadają sobie godziny i minuty, itp).
Przerwanie nastąpi, gdy bieżący czas (adresy rejestru 00h do 06h) jest równy temu ustawionemu przez Ciebie w tych wierszach rejestru, które są odpowiedzialne za alarm (czyli 07h do 0Dh). Oczywiście, nie wszystkie pozycje muszą być ustawione jednocześnie, a tylko te, które Cię interesują.

Wracając do tego przerwania co 6 minut.
Ja zrobiłbym to już w mikrokontrolerze. Odebrał przerwanie co 1 sekundę (a to ma "fabrycznie" ustawione jako jedną z opcji generowania przerwania na pinie INT/SQW),
ustawił zmienną, inkrementował ją co przerwanie aż dojdzie do 360 i wtedy zmienną zerował, a aktywował zdarzenie.
Albo ustawił przerwanie na co minutę i .... (dalej jak powyżej).

Zapoznaj się też z tym wątkiem (a szczególnie z ostatnim wpisem):
https://forum.atnel.pl/topic16307.html

_________________
Ad augusta per angusta



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 13 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO