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



Teraz jest 26 sty 2025, o 08:06


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 7 sie 2013, o 20:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2013
Posty: 328
Lokalizacja: Rzgów k. Łodzi
Pomógł: 11

Witam,
Ostatnio zacząłem się bawić RTC, i myśleć jakby to zautomatyzować aby wszystko się działo "w tle", było uniwersalne i wygodnie się tego używało. Starałem się również aby zajmował jak najmniej miejsca w pamięci, jednak to nie było moim głównym piorytetem. Biblioteka może działać i z LCD monochromatycznymi takimi jak HD44780 czy KS0108. Może również działać z kolorowymi, lub w ogóle bez wyświetlacza. Wszystko jest oparte na wskaźnikach do funkcji.

Inicjalizacja RTC odbywa się w następujący sposób :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Najpierw init przerwania zewnętrznego. Potem struktury RTC. Parametry są następujące. Wskaźnik na strukturę, lokalizacja na wyświetlaczu - szerokość i wysokość, separator czasu i wskaźnik do funkcji wyświetlającej tekst na wyświetlaczu i ustawianie kursora w odpowiednim miejscu. Dla kolorowego wyświetlacza jest tak samo, tylko dodane są parametry koloru tekstu i tła.

Możemy sobie również dodawać callback`i. W tej bibliotece są one rozbudowane. Nie ma jednego callbacka, zamiast jednego są cztery. Odpowiednio przed odczytem czasu, po odczycie czasu i analogicznie dla daty. Można zadawać sobie pytanie "po co ?". Przytoczę tutaj jeden przykład. Mamy sobie kolorowego LCD, wyświetlanie działa, jednak teksty z każdym odczytem daty i czasu brzydko się nakładają jeden na drugi. Tu z pomocą przychodzą callbacki przed odczytem. Wtedy rejestrujemy sobie callbacka, w funkcji callbacka czyścimy sobie fragment LCD aby nie usunąć reszty wyświetlacza i wszystko śmiga. Owszem, można dać czyszczenie tego fragmentu w pętli while, jednak wyświetliłby się ten tekst, minęła by chwila i za drugim obiegiem pętli while wszystko by się usunęło i byśmy mogli w ogóle nie zobaczyć tego tekstu :).

Biblioteka również umożliwia udostępnianie czasu bibliotece FatFS :)

Jeszcze jedna drobniutka zaleta. Chodzi mi o funkcje RTCSaveRegister. Przy użyciu enumeratora który jest już w bibliotece możemy pięknie sobie zapisywać cokolwiek chcemy do RTC. Przykład z godziną :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Niby nic, a cieszy :).

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


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


Jeszcze jedna ważna rzecz. Jeżeli ktoś by próbował uruchomić tego libsa z Mirkowymi libsami do HD44780 to może się rozczarować że lokalizacja na LCD nie działa prawidłowo. Powodem tego jest że Mirek w funkcji lcd_locate ma najpierw wysokość potem szerokość. W mojej bibliotece ustawia się najpierw szerokość potem wysokość. Więc jak używamy tych bibliotek to trzeba odwrotnie wpisać w inicjalizacji struktury lokalizację na LCD. Najpierw wysokość potem szerokość :) Żeby nie było marudzenia że coś nie działa :P
To by było chyba na tyle :) Jeżeli znajdziecie jakiś błąd czy coś nie będzie działać - piszcie, postaram się pomóc :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2013, o 21:03 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27351
Lokalizacja: Szczecin
Pomógł: 1042

Bardzo mi się podobają takie usprawnienia "dla leniwych" ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2013, o 21:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 mar 2013
Posty: 236
Lokalizacja: Warszawa
Pomógł: 5

W sumie nie rozumiem tego fragmentu, domyslam się, że to ma przeliczyć dzień i tydzień roku
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A co do kodu, spoko.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2013, o 21:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2013
Posty: 328
Lokalizacja: Rzgów k. Łodzi
Pomógł: 11

Paul Dirac napisał(a):
W sumie nie rozumiem tego fragmentu, domyslam się, że to ma przeliczyć dzień i tydzień roku
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A co do kodu, spoko.

A to z internetu jest, działa więc zostawiłem :P Funkcja ta oblicza dzień tygodnia

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 07:27 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27351
Lokalizacja: Szczecin
Pomógł: 1042

Jeśli nie do końca rozumiecie np co to jest:

Paul Dirac napisał(a):
"-bed=pen+mad."[m]


to zajrzyjcie tutaj ;)

http://mirekk36.blogspot.com/2013/08/am ... ajaca.html

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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

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