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



Teraz jest 30 cze 2026, o 14:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 21 mar 2017, o 16:45 
Offline
Nowy

Dołączył(a): 02 maja 2016
Posty: 14
Pomógł: 0

Witam,

mam pewien problem z obsługą układu DS1307. Przy pisaniu poniższego kodu wzorowałem się na obsłudze zegara PCF8583, zmieniając tutaj pewne rzeczy. Czas i datę ustawiłem w sposób podobny, natomiast w nocie aplikacyjnej układu ds1307 zobaczyłem, że istnieje rejestr kontrolny, pod adresem 0x07. Czytając dalej notę - o ile dobrze zrozumiałem - ustawiłem w tym rejestrze tylko bit nr 4(SQWE), który załącza oscylator z częstotliwością 1Hz. Dalej następuje zapis danych do RTC, następnie - w pętli - odczyt, zmiana kodu bcd na kod dziesiętny i wyświetlenie czasu na LCD.
Wykorzystuję płytkę 1.05, gdzie po włożeniu układu ds1307 zmieniłem położenia zworek.

Na wyświetlaczu nie wyświetla się żadna wartość (jest tylko podświetlony), ale jest on dobrze podłączony, wyjścia są odpowiednio wybrane w pliku *.h. Próbuję także podłączyć wyjście układu RTC do diody LED, i widać że ona nie gaśnie, czyli problem prawdopodobnie tkwi w niewystartowaniu układu.

Jeśli ktoś znajdzie czas i rzuci okiem na kod, będę wdzięczny :)



Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2017, o 16:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1041
Lokalizacja: Trójmiasto
Pomógł: 190

Ale skoro na wyświetlaczu nie masz nic, to na początek doprowadź do ładu wyświetlacz. Albo jednak masz źle podłączony albo źle zainicjowany wyświetlacz (ewentualnie pokręć potencjometrem od kontrastu)
Na wyświetlaczu powinieneś mieć przynajmniej dwa dwukropki separujące godziny minuty i sekundy...



Ostatnio edytowano 21 mar 2017, o 17:05 przez xentis, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2017, o 17:05 
Offline
Nowy

Dołączył(a): 02 maja 2016
Posty: 14
Pomógł: 0

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Na początku pętli głównej dodałem przykładowy fragment tekstu - wyświetla się na wyświetlaczu. Wygląda na to, że nie zmienia się flaga zmieniana w przerwaniu, ponieważ "nie wchodzi" w tego ifa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2017, o 17:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lis 2015
Posty: 219
Pomógł: 20

To sprawdź tak jak to Mirek pokazywał w debugerze jednodiodowym:) Podłącz jedna diodę, ustaw jako wyjście i sproboj ją zalaczyć w przerwaniu. Będziesz wiedział czy program do tego momentu się wykonuje.

Nie wiem czy nie zjadles jednego zera

zamiast
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

sproboj
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2017, o 18:29 
Offline
Nowy

Dołączył(a): 02 maja 2016
Posty: 14
Pomógł: 0

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zgadza się, w jednej linijce było nawet dwa błędy. Powinno być:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Spróbowałem też z tą diodą zmienianą w przerwaniu, zaświeci się, ale nie gaśnie. Jeszcze raz przeanalizuję kod - tylko wieczorem - może kolejny głupi błąd :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2017, o 18:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

W wątku tym pod koniec zapodałem plik do projektu zegara opartego o DS1307. Masz tam poprawną inicjalizację etc.
DS1307 to fajny zegarek , może nie tak dokładny jak DS3231 ale ta niedokładność też ma swój urok jak szum starej płyty w adapterze :)
Link do wątku : topic11499.html


Autor postu otrzymał pochwałę

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2017, o 19:52 
Offline
Nowy

Dołączył(a): 02 maja 2016
Posty: 14
Pomógł: 0

Dzięki. Jutro się za to zabiorę :)

Z czystej ciekawości sprawdziłem kilka dni temu dokładność PCF8583. Po ośmiu godzinach pracy, rozkalibrował się o ok. 2-3s :)



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: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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