Ads_700x200

tme

sobota, 2 listopada 2013

RTC DS3231 - najdokładniejszy zegarek na świecie?

Witam,

Tym razem chciałbym przedstawić wam pewien drobny scalaczek, który mnie ostatnio zafascynował. Pewnie nie jest on pierwszym i ostatnim, który tego "dokonał", że się tak wyrażę ale pomimo to uznałem, że warto powiedzieć o nim kilka słów. Tym bardziej, że przy tej okazji rozprawimy się jednocześnie z kilkoma ważnymi zagadnieniami elektronicznymi a także napiszemy sobie bibliotekę do jego obsługi. Bardzo często zdarza się, że początkująca osoba w zakresie mikrokontrolerów gdy robi swój pierwszy zegarek, wybiera do tego celu pierwszy lepszy i dostępny układ RTC. Być może czasem przegląda fora internetowe w poszukiwaniu porad, ale tam też często nie znajduje satsyfakcjonujących odpowiedzi, które pozwoliłyby właściwie i świadomie wybrać taki układ. Zwykle opieramy się na opinii innej osoby, która gdzieś tam akurat powiedziała, że np "u mnie ten RTC działał bardzo dokładnie". Ja w tym poradniku, chciałbym natomiast omówić temat niejako od podstaw. Zwrócić twoją uwagę na pewne szczegóły jeśli chodzi o parametry nie tylko układów scalonych ale także rezonatorów kwarcowych wykorzystywanych do budowy układów RTC. Przy okazji wiedza ta przyda się także w zakresie mikrokontrolerów z którymi będziesz miał do czynienia. Ale nie uprzedzajmy faktów, polecam obejrzeć - hmm może nie krótki bo ponad godzinny poradnik, jednak mam nadzieję, że pozwoli on poznać temat na tyle dogłębnie aby od tej pory każdy mógł już sam w pełni świadomie dobierać sobie układy RTC do swoich zastosowań czy też rezonatory kwarcowe. 


Film w jakości HD, zapraszam:



Poniżej oczywiście kod źródłowy do pobrania:



;)

74 komentarze:

  1. Mirku szalejesz ! Niedawno przerabiałeś rejestry przesuwne od podstaw, potem skaczesz do korrekcji gamma a teraz pokazujesz pięknie działający niesamowicie dokładny RTC'k :) Brawo Mirku, naprawdę wielki szacun za takie poradniki :)

    OdpowiedzUsuń
    Odpowiedzi
    1. Sorki, że tak troszkę nie po kolei skaczę z tematu na temat ... ale tak jakoś ;) mi wychodzi.

      Usuń
  2. O super. Zaraz zabieram się za oglądanie. Właśnie takiego poradnika potrzebowałem. Panie Mirku czy przymierza się Pan przypadkiem do zrobienia cyklu poradników (coś na wzór ADC) o obsłudze różnych czujników? Np, termometr, czujnik odległości, wilgotności itp? Taki zbiór poradników do obsługi podstawowych czujników :)

    OdpowiedzUsuń
    Odpowiedzi
    1. Myślę, że powoli .. w miarę oczywiście zainteresowania moimi skromnymi poradnikami - do wszystkiego dojdziemy .... tylko czasu troszkę trzeba

      Usuń
  3. tak ogólnie wielki szacun za naprawdę wartościowe "wykłady" gdzie nawet ktoś dobrze wykształcony i z dużą praktyką dostrzeże coś nowego i ciekawego ... do historii przejdziesz Mirek ;-) a może kolejny temacik z tego kierunku to zegarek synchronizowany wzorcem czasu z pod Frankfurtu ? fajny i wdzięczny temat .... a ile zastosowań ... / Tomek

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak to bardzo fajny temat ... ale jak wyżej mówiłem, na wszystko trzeba czasu, czasu i jeszcze raz czasu.

      Usuń
    2. A jak wygląda temat ostatniej części o ADC czyli klawiaturki ?

      Usuń
    3. i tak jesteś wzór pracowitości bo ja sam nie wiem kiedy Ty to wszystko robisz ...ale wiem co to pasja do elektroniki ;-) jednocześnie troszkę "współczuję" Twojej Rodzince bo nic z Ciebie nie mają ;-) a do tego w domu laboratorium .... ;-) /Tomek

      Usuń
    4. tak o tej klawiaturce też jeszcze musi być ;) ... nawet na stykówce już od dawna czeka zmontowana taka klawiaturka ;)

      a pasja ... hmm no tak - tego już się nie da zoperować/wyleczyć ;) tak mówią mi lekarze

      Usuń
  4. Mirku, próbowałeś może zamawiać ostatnio sample z Maxima? Chyba się na mnie obraził, bo nic nie chcą wysyłać. :<

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak próbowałem i też ostatnio nic nie dotarło.

      Usuń
    2. No to szkoda. Ale dzięki za odpowiedź. Teraz przynajmniej wiem, że to nie tylko na mnie się "obraził".

      Usuń
    3. Ja zamawiałem we wrześniu i przysłali mi po około miesiącu, bo jeden z układów nie był dostępny "od ręki"

      Usuń
    4. Pewnie użyłeś jakiegoś uczelnianego maila, do którego nie mam dostępu.

      Usuń
    5. Maila firmowego. Istotniejsze jest chyba, jak często zamawiasz (?). Ja poprzednią prośbę o próbki miałem kilka lat temu.

      Usuń
    6. Ostatnio zamawiałem całe 2 lata temu, więc raczej nie w tym problem.

      Usuń
  5. Kolejny świetny poradnik
    Przydałby mi się poradnik na czujnik SHT75

    OdpowiedzUsuń
  6. Te skoki na pcf i ich brak na ds są przecież spowodowane triggerem i rodzajem sygnałów.. prawie że piła do prostokątnego.. przecież oscyloskop sinusoidy perfekcyjnie synchronizowanej nie pokaże równo tylko będzie skakała częstotliwość.. z pcf'a też można zrobić taki arcydokładny rtc, wystarczy własną kompensacje dopisać i dorzucić lepszy rezonator

    OdpowiedzUsuń
    Odpowiedzi
    1. Dzięki za uwagę z tym triggerem - ale ja się w tym aż tak nie orientuję - tymczasem rzeczywiście sprawdzałem to tylko na nóżce do której podłączony był kwarc...

      Jeśli chodzi o drugą część - że z pcf'a można zrobić taki arcydokładny rtc to już się nie zgodzę ;) tzn hmm no można tylko kto by się bawił w dodawanie czujnika temperatury i jeszcze jakąś cyfrową korekcję generatora ;) ... przecież to się mija z celem. Takim sposobem to można także powiedzieć, że np po co kupować zwykły scalony odbiornik podczerwieni jak można samemu zrobić na zwykłej fotodiodzie i kilku WO, itp itd

      Byłoby to (ale moim zdaniem - nie każdy musi się z tym zgadzać) wywarzanie głową otwartych drzwi.

      Usuń
    2. No jasne, że nie ma sensu wywarzać otwartych drzwi, ale jak ktoś chce dla własnego samopoczucia to można;)
      Do porównania wyjść 32khz możnaby podłączyć pcf'a pod jeden kanał a ds'a pod drugi. W ~25 stopniach powinny się te przebiegi mniej więcej pokrywać, a w miare podgrzewania/chłodzenia powinny się rozjeżdżać i to fajnie będzie można zobaczyć na oscyloskopie

      Usuń
    3. A jakże - samemu zrobić taką komensację, pobawić się z tym i to z pozytywnym wynikiem to byłoby od razu załapanie niezłego doświadczenie ;) zgadzam się

      A co do tego co było na oscylu to też mnie trochę dziwił fakt że ten ala częstościomierz na oscylu pokazywał jak się zmienia częstotliwość przy podgrzewaniu ale sam przebieg się na oscylu nie zmieniał - no ale to pewnie z tego powodu o którym pisałeś wyżej. Gdyby to dobrze złapać to właśnie - masz rację - fajnie byłoby widać na 2 kanałach jak się to rozjeżdża.

      Usuń
    4. ooo albo jeszcze inna metoda, zliczać impulsy obu scalaków. 15ppm przy 32khz to odchyłka jednego impulsu co ~2s (przy 1ppm ~30s) czyli po minucie powinno być widać ewidentną różnice w dokładnościach obu scalaków. (mam nadzieje, że dobrze policzyłem)

      Usuń
  7. A czy czasami ten układ ma termometr nie ma dokładności +- 3 st. C, a nie +- 3ppm, chyba, że czegoś nie rozumie

    OdpowiedzUsuń
    Odpowiedzi
    1. a co ma wspólnego dokładność +/- 3.5 ppm z dokładnością +/- 3 st C ? ;)

      W nocie PDF jest wyraźnie to napisane, i widać że dokładność 3,5ppm dotyczy RTC natomiast dokładność 3 st C dotyczy sensora temperatury.

      Usuń
    2. z tym że jak sprawdzałem w porównaniu z DS18B20 to czujniki temperatury ładnie pokazywały dokładnie tę samą temperaturę ;) RTC nie miał żadnej odchyłki ;) i to aż o 3 st C ... więc to tak chyba z dużym zapasem podali

      Usuń
    3. Może trochę źle napisałem pytanie, nie chciałem narzucać swojej wersji, ale w poradniku powiedziałeś, że termometr ma dokładność +-3ppm, co dawało by nam dokładność 0,000003 st.

      Usuń
    4. A to BARDZO przepraszam - być może tak powiedziałem ale to musiało być czyste przejęzyczenie (jak znasz moje poradniki to pewnie wiesz że czasem mi się to zdarza - pozostaje mi tylko przeprosić) .. jak możesz podaj mi dokładny czas w który miejscu to chlapnąłem to wstawię tam komentarz z poprawką tekstową OK ? ... proszę

      Usuń
    5. Gdyby ktoś miał możliwość wygenerowania stabilnej temperatury powyżej 60-70 stopni - wtedy powinien zobaczyć różnice w dokładnościach ;)
      Ale nie oszukujmy się, ds1820 czy ds3231 są przeznaczone do używania w zakresach około 0-30stopni i tam się sprawdzą rewelacyjnie.

      nie pamiętam w którym to było miejscu, ale podczas omawiania paramatrów z datasheetu ds3231 powiedziałeś dokładność 3 procent lub ppm, sam nie pamiętam ale nie było to napewno 3 stopni celsjusza:)

      Usuń
    6. ok - postaram się poszukać - dzięki

      Usuń
    7. O! super - już dałem poprawkę ;) że +/- 3 st C ....

      Usuń
    8. Sorki, że nie odpisywałem długo, ale musiałem wyskoczyć na chwilę. Nie chodziło mi o wytykanie błędów, tylko chciałem się upewnić, bo sam się uczę. Tak poza tym to świetna robota :), nie tylko ten ale i inne poradniki są dużą porcją wiedzy i wytłumaczone w wyśmienity sposób. Dzięki :)

      Usuń
    9. Ale ja bardzo dziękuję za takie zwracanie uwagi jeśli chodzi o tego typu sprawy. To oznacza tylko, że z uwagą oglądasz moje poradniki co mnie cieszy i motywuje do dalszej pracy nad nimi ;)

      Usuń
  8. Ja to tylko żałuję, że osobiście nie mogę uczestniczyć w wykładach Pana Mirka. :)
    Poradniki świetne i to się chwali.
    Jak nie umiałem nic napisać w C to teraz trzaskam aż wióry lecą z klawiatury.
    Nawet mój kolega zakupił ostatnio książki Pana Mirka bo poleciłem i bardzo sobie chwali. Dodam ze człowiek programował dotychczas tylko w asemblerze i to zawodowo.

    OdpowiedzUsuń
    Odpowiedzi
    1. Cieszę się, że mogłem pomóc oraz za takie wsparcie i polecanie moich książek. Bardzo uprzejmie dziękuję.

      Usuń
  9. Panie Mirku będzie kod do pobrania z tego poradnika?

    OdpowiedzUsuń
    Odpowiedzi
    1. ach - zapomniałem - chyba ze zmęczenia ... sorki zaraz dodam, przepraszam.

      Usuń
  10. Pańskie zmęczenie jest nad wyraz usprawiedliwione:-). Dziękuję i pozdrawiam.

    OdpowiedzUsuń
  11. Świetny poradnik,nieocenione informacje tamże zawarte.
    Pozdrawiam autora.

    OdpowiedzUsuń
  12. Muszę przyznać, że testy temperaturowe tych scalaków troszkę zalatują eevblogiem, ale to pozytywna krytyka oczywiście :)

    OdpowiedzUsuń
    Odpowiedzi
    1. Sprawdź najpierw sam sobie jak to działa z tą temperaturą a potem pisz czy zalatuje czy nie zalatuje ;) .... Bo tak jak pisałem na forum, niedowiarków się nie przekona.

      Usuń
  13. Czy przy obliczeniach błędu względem temp. nie ma pomyłki?
    Przy 2 st.C błąd wg. obliczeń błąd wynosi 0,14ppm zamiana na procenty daje 1,4(-5)% i jeśli to pomnożymy przez ilość sekund w miesiącu (2 678 400) daje nam to 37,49s a nie 0,37s?

    OdpowiedzUsuń
    Odpowiedzi
    1. No ale nie pomyliło się coś koledze ? jak to 0,14ppm zamienia się na 1,4 ??? Toż tam podałem że najpierw: 0,14ppm dzielimy przez 1000000 a potem dopiero mnożymy x 100 żeby wyszło w procentach - czyli wyjdzie tak jak pokazałem w poradniku 0,000 014%

      Usuń
    2. 1,4(-5) to 1,4x10 do potęgi -5, może niefortunnie to zapisałem w każdym razie jest to 0,000014.

      Ale może od początku: 0,14ppm/1 000 000 = 0,00000014 x 100% = 0,000014 zgadza się?

      To teraz 2 678 400 x 0,000014 = 37,4976 a nie 0,37

      Usuń
    3. hmm ok może ja się nieprecyzyjnie w poradniku wyraziłem więc teraz co do ostatniego obliczenia zobacz:

      2 678 400 x 0,000014 % = 0,037

      ok?

      to jest 0,000014 %

      co oznacza dokładniej mówiąc (2 678 400 x 0,000014)/100 czyli na końcu będzie 0,37

      Usuń
    4. Tak się domyśliłem ale w poradniku wyjaśnione jest inaczej czas 17:17 "... 2 678 400 razy tyle procent (0,000014%) to wyjdzie ... 0,37s" stąd moje pytanie czy coś przeoczyłem czy mój kalkulator źle liczy.

      Usuń
  14. Witam.
    Panie Mirku męcze się od jakiegoś czasu z 74hc595 i nie wiem dokładnie jak
    go podłączyc mógłby mi pan przesłać na E-maila schemat. W Pana wcześniejszym poście o rejestrach jest to dobrze wytłumaczone, ale na
    schemacie brakuje pinów. Dziękuję za pomoc.
    Mój E-mail.
    Alanbejnarowicz01@gmail.com

    OdpowiedzUsuń
    Odpowiedzi
    1. no ale zaraz zaraz - gdzie tu nie ma pinów ?

      http://mirekk36.blogspot.com/2013/09/rejestr-przesuwny-74595-podstawy.html

      przecież wszystko dokładniuśko pokazałem ;)

      Usuń
  15. Do wcześniejszej uwagi związanej z triggerem dorzucę jeszcze kilka prostych wyliczeń.
    Otóż patrząc na znajdujący się w nocie wykres zmian częstotliwości w funkcji temperatury (bez korekcji) można zauważyć, że w temperaturze +70 stopni uchyb wyniesie około minus 40 minut na rok czyli 40/(365*24*60)*100 = 0,000076. A więc 32768 Hz * 0,000076 = około 2,5 Hz. Tyle wynosi błąd kwarcu po ogrzaniu do +70 stopni Celsjusza.

    Po zapoznaniu się z notą układu DS3231 można zauważyć, że wewnętrzna korekta częstotliwości kwarcu w funkcji temperatury następuje w cyklu co 64 sekundy.

    "Once the oscillator is running, it continues to run as long as a valid power source is available (VCC or VBAT), and the device continues to measure the temperature and correct the oscillator frequency every 64 seconds."

    Układ DS3231 poddany przez Pana zmianie temperatury w czasie znacznie krótszym niż 64 sekundy nie zdążył skorygować swojej częstotliwości. Początkowo nastąpił prawidłowy spadek o około 3 Hz. Po kilkunastu sekundach nastąpiła automatyczna korekta (nagły skok do 32768 Hz).

    Prawidłowo mierzona częstotliwość na układzie PCF pokazałaby właśnie to samo co DS3231 przed korektą.

    OdpowiedzUsuń
  16. Panie Mirku!
    Wielkie słowa uznania za ten (i inne) poradnik(i). Jedna prośba. Nie wiem, czy podawał Pan w trakcie trwania filmiku dokładny schemat w jaki został połączony ten RTC z kwarcem, a jeśli nie, to czy można prosić o mały schemat? Bo w pdfie do tegoż scalaka nie ma dokładnie jak to zrobić, jest zaznaczony tylko jeden z pinów który wychodzi na 38kHz...

    OdpowiedzUsuń
    Odpowiedzi
    1. Panie kolego - nie do końca może kolega zrozumiał działanie tego REWELACYJNEGO scalaka ;) .... do niego nie podłącza się KWARCA ;) on ma kwarc już wbudowany w sobie ;) więc po co podłączać ? ... i jeszcze jak ktoś potrzebuje to częstotliwość kwarca wyprowadzona jest na zewnątrz! .... to jest WYJŚCIE a nie wejście

      więc chyba jeszcze bardziej się spodoba koledze ten scalak - tak jak mi i wielu innym osobom hmmm ?

      Usuń
  17. Dobra, właśnie przeglądnąłem dokładniej datasheet-a :) Kwarc jest w środku, rzeczywiście. Świetna sprawa. Mniej wydatków i mniej lutowania!
    Scalaka mam już na stanie, teraz już płytkę projektuję... jeszcze chwila i będzie nowe urządzonko!

    OdpowiedzUsuń
  18. Witam,
    Ma może ktoś projekt płytki do tego scalaczka? takiej najprostszej żeby można było do testów wpiąć do płytki stykowej...
    Może sam autor filmu udostępni projekt płytki do wytrawienia?

    OdpowiedzUsuń
    Odpowiedzi
    1. A zaglądał kolega na nasze przyjazne forum?

      www.forum.atnel.pl

      ??? chyba nie ;) a tam już się koledzy dzielili takimi płytkami własnej konstrukcji

      Usuń
    2. Aaaaa kolega nie zaglądał bo kolega nowy na blogu, w takim razie lecę szukać wątków na forum...

      Dziękuje za odpowiedź i pozdrawiam.

      Usuń
    3. Jak nie znajdziesz - to daj znać - pomogę poszukać ;)

      Usuń
  19. znalazłem, dziękuję, jak by ktoś oprócz mnie szukał płytki to tu jest wątek:
    http://forum.atnel.pl/post59055.html

    OdpowiedzUsuń
  20. Panie Mirku a ja mam jeden mały problem. Zgodnie z tym poradnikiem próbuje sobie okiełznać PCF8583. I generalnie wszystko mi wychodzi ale mam problem z wyświetlaniem setnych części sekund. Mając tak stworzoną funkcję pobierającą czas wszystko jest ładnie pięknie.

    void PCF8583_get_datetime( TDATETIME * dt ) {
    uint8_t i;
    uint8_t buf[8];
    TWI_read_buf( PCF8583_ADDR, 0x02, 7, buf );
    for( i=0; i<7; i++ ) dt->bytes[i] = bcd2dec( buf[i] );
    }

    Natomiast gdy chcę pobierać od adresu 0x01 żeby pobrać setne części sekund to mam same 0. Tak na szybko da radę coś z tym zrobić? ;) Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. No ale pomyśl - co JAKI CZAS dokonujesz odczytu danych z układu PCF ? Pewnie co jedną sekundę co ? ;) i dziwisz się że w setnych częściach sekundy są same zera ?

      Usuń
    2. Racja! Ale wstyd. Dzięki

      Usuń
    3. Wstyd to kraść ;) a dopytać zawsze warto - co za problem ;) .... każdy może się pomylić ...

      Usuń
  21. Witam. Czy mogę poprosić o kila słów wyjaśnienia do tablicy days? 7 elementów to wiem dlaczego. Ale czemu każdy z nich po 4bajty? I czy można było zastosować tablicę jedno wymiarową? Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. dlaczego 4 bajty ?

      no a zobacz jak trzymam dni ;) ... po 3 litery no i chyba nie zapominasz o znaku ZERO na końcu każdego łańcucha ? czy zapominasz ?

      a tablicę to możesz kombinować jaką chcesz i w zależności jak się chcesz odwoływać do jej elementów ;) można i jednowymiarową - czemu nie ?

      Usuń
  22. Proszę uprzejmie o podpowiedź czy zamiast baterii mogę użyć kondensatora 0,5 - 1 F podłączonego do Vbat, ładowanego z Vcc przez diodę?

    OdpowiedzUsuń
    Odpowiedzi
    1. Mam wątpliwości ponieważ DS3231 ma rozdzielone zasilanie zasadnicze od awaryjnego w przeciwieństwie do np. PCF8583, w którym układ zasilania awaryjnego robi się samemu z dwóch diod. Nie wiem czy jeżeli w DS3231 połączę Vcc z Vbat diodą, to nie spowoduję nieodpowiedniego przepływu prądu, bo nie znam budowy wewnętrznej układu. Ale to takie lamerskie pytanie.

      Usuń
  23. Witam mam takie pytanie, doradzi ktoś jak można połączyć powyższy program z programem z BB co pokazuje dwie temperatury? Chciałbym by na LCD pokazywała się godzina i temperatura zewnętrzna i wewnętrzna. Pozdrawiam

    OdpowiedzUsuń
  24. Witam,
    Czy przypadkiem w kodzie w części kasowania flagi przerwania, gdy nie wyświetlał się aktualny czas nie zostało zmienione z poprawnego na niepoprawny zapis [1:14:11]?
    Wcześniej było GIFR = (1<<INTF0); co zapisywało tylko 1 do INTF0 a do reszty zero. Więc nie ruszało pozostałych bitów flag przewrwań. Po poprawce jest GIFR |= (1<<INTF0); co kasuje wszystkie wystawione flagi w rejestrze GIFR (bo wystawiona flaga to 1 więc tam znowu zapiszemy 1)?
    Czy ja źle rozumiem ten mechanizm czy to może ten wspominany efekt "zmęczenia materiału"?
    Pozdrawiam,
    Robert
    PS. Ile czasu trzeba praktycznie poświęcić na przygotowanie materiału (nie tylko nagranie, ale wcześniejsze przygotowania tematu, scenariusza i kodów) aby wyszedł kinowej długości poradnik?

    OdpowiedzUsuń
    Odpowiedzi
    1. Ależ oczywiście, że kolega ma 100 a nawet 1000% racji, ma być:

      GIFR = (1<<INTF0);

      bez tej operacji OR - zdecydowanie.

      Co do czasu ... eeeeh każdy poradnik to u mnie bardzo indywidualna sprawa - ostatnio nagranie i zmontowanie oraz wpuszczenie pół godziny materiału, gdzie są ujęcia z kilku kamer a do tego jeśli jeszcze jakiś trudniejszy temat to zajmuje to od kilku godzin czasem nawet do tygodnia jak muszę powtarzać i powtarzać kręcenie tego samego materiału bo uznam, że jest jakiś krytyczny błąd

      Usuń
    2. "zajmuje to od kilku godzin" ale chyba tylko część "filmowa". Bo pewnie przygotowanie scenariusza oraz rozgryzienie funkcji układu (przewertowanie datasheeta oraz oprogramowanie by móc już mieć rozpisane działania w czasie nagrania) zajmuje dodatkowe sporo czasu.
      Aby więcej czerpać z Pana poradników, najpierw sam starałem się coś zrobić z układem a następnie dopiero poprawiałem swoje kody oglądając w poradniku jak to się robi porządnie. I mi samo zapoznanie się z pdf-em oraz stworzenie podstawowego programu zajęło cały weekend ;(

      Usuń
    3. No co by nie mówić - czasu idzie na to na prawdę mnóstwo, i czasem niektórzy widzowie potrafią to i ocenić i docenić - za co dziękuję.

      Usuń
    4. Oj dużo osób docenia, tylko jak to bywa w anonimowym świecie Internetu, do autora docierają tylko nieliczne informacje.
      Ale wiedz, że nie tylko same "programistyczne" poradniki są zrobione po mistrzowsku, ale jeszcze te graficzne cuda wraz z animacjami na początkach i końcach jakimi są one opatrywane - mamy nadzieję, że nie zmienisz fachu na tworzenia reklam i grafik (choć to podobno lepiej płatne zajęcie) :)
      Pozdrawiam,
      Robert

      Usuń
    5. No nie fachu nie zmienię ;) i cieszę się, że również oprawa graficzna się podoba.

      Usuń