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



Teraz jest 23 lut 2026, o 18:07


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 1 mar 2016, o 20:51 
Offline
Moderator
Avatar użytkownika

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

Ja ci wyjaśnię - tylko się nie obraź za porównanie bo nie chodzi mi o obrażanie ale żebyś dobrze zrozumiał co ty próbujesz robić.

Zaczynasz bowiem pisać o watchdogu, piszesz że nic z tego co na blogu nie rozumiesz, po cym nagle zwrot akcji jak w filmie sensacyjnym i okazuje się, że ty masz problem z wyświetlaczem OLED, który wyświetla coś z RTC .. i wyświetlacz miga sobie, pomimo że czas pokazuje dobrze ale coś tam się dzieje na połowie ekranu ....

sorki ale to jakaś MASAKRA a nie pytanie na forum czy przedstawienie problemu.

To tak jakby nagle pojawił ci się krwawy ślad na przedramieniu a ty byś pobiegł do stacji meteorologicznej gdzie wykonują "pomiary spływu powierzchniowego na fliszowanych stokach górskich" po to aby ci natychmiast udzielili pierwszej pomocy. Wprawdzie pewnie nie wiesz co to za pomiary - ale sądzisz, że to może pomóc na ten krwawy ślad. A nie masz nawet zamiaru wyjaśnić skąd on się wziął, jak się pojawił, od czego itp ? po co to wyjaśniać ... będzie większa heca.

Tak samo widzę, ty próbujesz z tym swoim miganiem OLED'a ... no identycznie wręcz ... coś ci tam miga to co? pierwszy pomysł - przywalić mu watchdogiem - pomimo to że kompletnie nie wiesz do czego jest ten watchdog (tzn sam piszesz że nic nie rozumiesz) ... No to po co chcesz użyć watchdoga ? Nie sądzisz przypadkiem, że warto może zacząć po kolei i najpierw np naprawić sobie wyświetlanie na OLED a później ew poczytać sobie co to jest watchdog? do czego służy ? ... albo jeśli ci się śpieszy to zostawić na chwilę OLED'a i zacząć od tego żeby się nauczyć co to jest watchdog.

No ja myślałem widząc tytuł wątku - że to będzie właśnie może pytanie o watchdoga - że czegoś nie rozumiesz - chociaż dalsza część tytułu już mnie zaintrygowała "- to NIE jest proste!" ..... już przez skórę czułem że będzie masakra - no i proszę - zaglądam a tu na prawdę masakra ....

------------------------------------------------------------------

uprzedzam - ABSOLUTNIE nie krytykuję ciebie, że nie wiesz co to jest wachdog, ja sam kiedyś nie wiedziałem - i co z tego ? Zawsze można poczytać albo w dzisiejszych czasach zapytać nawet na forum (ja kiedyś nie miałem internetu i musiałem rezać wiedzę na temat watchdoga skąd tylko siędało)


No dobra - zapytać na forum, ale na Boga! .... no bez przesady - poproszę na tym forum przynajmniej próbować uczyć się zadawać poprawnie pytań - a nie tworzyć KALAMBURY z kosmosu. Tym bardziej, że Warchdog - to JEST PROSTE! ... tylko trzeba JEDEN RAZ zaskoczyć do czego jest ten mechanizm i jak się go mniej więcej używa.

Nie zaś tak jak ty - nie wiedząc co to jest - próbujesz brać to w ręce i walić na oślep bez przemyślenia - bo ci OLED miga to walnąć mu watchdogiem - a nawet nie potrafisz się skupić i dokładnie ani zadać pytania typu:

Cytuj:
"koledzy - nie rozumiem nawet po przeczytaniu na blogu mirka co to jest watchdog - możecie mi przybliżyć swoimi słowami zasadę na jakiej on działa ?"


Co problem jest w ten sposób zadać pytanie ?

Jeśli zaś chodzi o OLED .... to jak można mieszać 100 różnych tematów naraz - jak można zadać pytanie typu:

Cytuj:
"Koledzy miga mi OLED gdy wyświetlam godzinę z RTC - i nie pomaga na to watchdog?"


do tego na końcu dodajesz:

MrNew napisał(a):
Zegar stoi i Reset procka nie działa.

Rozumiem, że coś źle zrobiłem, ale po prostu nie rozumiem, co autor miał na myśli, gdzie właściwie mam umieścić to wyłączenie watchdoga wdt_disable().


Wiesz to już jest przesada ....

Czy ja na blogu pisząc o Watchdogu pisałem coś na ten temat że należy go używać gdy OLED miga do jasnej ciasnej ? bo piszesz to tak gładko - że jakby ktoś przeczytał to mógłby tak pomyśleć wprost.

a na końcu już kompletna załamka:

MrNew napisał(a):
P.S. To oczywiście nie tłumaczy, dlaczego co jakiś czas mi wszystko miga?


Mógłbym w tym miejscu zadać pytanie jak moja nauczycielka j.polskiego kiedyś dawno temu gdy jeszcze chodziłem do szkoły średniej:

"Co poeta miał na myśli - pisząc to zdanie w swoim poemacie?"

-----------------------------------------------------------------------------------

Kończąc już - ja rozumiem, jak to bywa gdy człowiek siedzi nad jakimś problemem i wciąż nie może znaleźć rozwiązania, wciąż coś nie wychodzi - zaczynają się nerwy, stres itp .... No ale ... forum nie jest po to żeby wyładowywać tu swoje stresy poprzez wpisanie iluś tam zdań z których KOMPLETNIE nic nie wynika a nawet nie wiadomo jakie jest pytanie! (tu aż użyję wykrzyknika) ... bo znak zapytania w twoim całym poście pojawia się na samym końcu ..... w tym cytacie który wyżej podałem - no i niech ktoś mi powie - ktoś inny niż autor - o co tu chodzi ....

Jeśli ktoś to zrozumie - to ok - odwołuję wszystko to co napisałem wyżej ... i uznajmy, że nie było tego mojego postu i że ja jestem niedouczony - nie potrafię zrozumieć prostych i oczywistych pytań.

-------------------------------------------------------------------------------------------

Piszę zaś to wszystko tylko i wyłącznie po to aby zwrócić uwagę - że jeśli już zadajemy pytanie na forum - to na spokojnie, i tak żeby osoby czytające mogły to zrozumieć - a nie wpisujemy potok słów z których KOMPLETNIE nic nie wynika i nie chce się nawet porządnie opisać problemu. Poza tym jak masz problem z Watchdogiem - to załóż wątek oddzielny i zapytaj o Watchdoga - masz problem z OLED'em to załóż wątek, opisz dokładnie problem - pokaż swoje jakieś fragmenty kodu które sprawiają ci kłopot itp itd - zamiast potoku nieskoordynowanych słów.



-------------------------------------------------------------------------
Na zakończenie, żebyś nie myślał, że ja jestem taki mądry i wiem na czym polegają "metody badań spływu na fliszowanych stokach górskich", to podaję źródło, które sam przed chwilą znalazłem w internecie - wcześniej nigdy tego określenia na uszy nie słyszałem.

źródła: http://rcin.org.pl/Content/27600/WA51_3 ... -Geogr.pdf

_________________
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: 1 mar 2016, o 21:51 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Przyznam że również zwiesiłem sie jak twój procesor Kolego ,po przeczytaniu posta i potrzebuje watchdoga

A wracając do tematu Kolego watchdoga wykorzystuje się przeważnie awaryjnie taki bezpiecznik. Po to żeby procesor zresetować w sytuacji ekstremalnej (zawieszony) . A nie do naprawiania problemu

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 mar 2016, o 23:28 
Offline
Moderator
Avatar użytkownika

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

MrNew napisał(a):
Mirek, sorki, ale się nie zrozumieliśmy.

Dlatego to wszystko napisałem wyżej ...

Fajnie że za drugim razem napisałeś to już dużo jaśniej ...

Nie mniej jednak uważam, że próba eliminacji migania wyświetlacza OLED, za pomocą Watchdoga to mocno nietrafiony pomysł ...

Za to teraz pojawiło się przynajmniej jedno konkretne pytanie - na które jak widzę kolega matekogon wyżej już odpowiedział i słusznie podpowiedział. Ja się z tym zgadzam.

_________________
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: 2 mar 2016, o 13:05 
Offline
Moderator
Avatar użytkownika

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

MrNew napisał(a):
Podejrzewam, że problem jest z wdt.
Pisałem, że go wyłączyłem.
Jednak Nie, bo jest w jednym miejscu, mam to tu:


Ja zaś podejrzewam, że kompletnie nadal nie rozumiesz co to jest Watchdog, na podstawie tego co właśnie piszesz ...

Więc dwa słowa wyjaśnienia - Watchdog to taki timer sprzętowy w mikrokontrolerze, którego można aktywować tylko po to aby on dokonywał prawidłowego resetu procka albo w jakiejś krytycznej i kompletnie nieprzewidzianej sytuacji, która może wystąpić raz na jakiś długi i nieprzewidywalny czas pracy urządzenia. Albo można go np wykorzystać celowo do resetu bo np chcemy aktywować bootloader ....

Tymczasem ty piszesz takie zdania:
MrNew napisał(a):
Dioda LED miga, ale nie co 1sek, ale jak się jej chce.

Przez co sam sobie szkodzisz i sam stwarzasz sobie problemy. Bo dioda nie miga sobie jak jej się chce to nie jest żywy organizm, który żyje własnym życiem .... to tylko procek i program ... i elektronika zewnętrzna oczywiście ...

A widać po tym co opisujesz - że masz ileś tam nakładających się problemów, których w ogóle nie rozwiązujesz i nie poszukujesz ich przyczyn tylko chcesz hmmm załatać to Watchdogiem ? To kompletnie bez sensu ...

Poza tym piszesz że "wyłączyłem watchdoga" ale zostało mi to: .... i pokazujesz na fragment do fragmentu kodu, który ma zresetować watchdogiem procka gdy nadleci polecenie z Bootloadera .... co to ma wspólnego z twoim problemem ?

----------------------------------------------------------------------------------

Proponuję ci zrób tak:

1. zostaw ty ten watchdog w spokoju, na razie go w ogóle nie używaj
2. zostaw OLED'a bo to dla ciebie kolejna niewiadoma w równaniu
3. zajmij się podziałem kodu na mniejsze części i dojdź do tego dlaczego ta dioda ci "miga jak chce" bo już to świadczy o tym, że albo tragicznie gdzieś zmasakrowałeś program albo masz coś tragicznie namieszane w elektronice

A nie opowiadaj jako argumentu, że na m32 tobie to działało bo skoro się przesiadłeś na inny procek to mogłeś narobić kupę błędów chociażby w inicjalizacji timerów itp ... gdzie zmieniają się drastycznie zarówno nazwy rejestrów jak i nazwy bitów

Zatem do dzieła - zacznij porządkować po kolei i zacznij od tej diody LED

_________________
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: 2 mar 2016, o 13:48 
Offline
Moderator
Avatar użytkownika

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

No ok rozumiem - tylko zobacz, że ty jednocześnie poruszasz z piętnaście różnych problemów od bootloadera począwszy, poprzez watchdog, migającą sobie diodę LED wg własnego uznania poprzez źle działający kod na m328 aby na miganiu OLED'a zakończyć a to wszystko w jednym wątku ... dlatego się nie rozumiemy - i ja jak na razie nie umiem ci pomóc...

Dlatego pisałem wyżej - zostaw na razie watchdoga ... i spróbuj może się skoncentrować na rozwiązaniu problemu z tą diodą co ma migać w przerwaniu co 1 sekundę a miga inaczej - przynajmniej ja od tego bym zaczął i dlatego ci to podpowiadam. Dziel problemy na mniejsze kawałki a nie wysypujesz wszystko razem z worka i nie wiadomo od czego zacząć. W ten sposób trudno rozwiązywać problemy w kodzie.

_________________
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: 2 mar 2016, o 14:26 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
Pytam się, dlatego, jak i gdzie w programie to podejście umieścić, jeśli nie w main, to gdzie?

a zobacz właśnie tutaj jak to się robi:

http://atnel.pl/mkbootloader.html

i gdzie się umieszcza tę sekcję ....

_________________
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: 2 mar 2016, o 14:53 
Offline
Moderator
Avatar użytkownika

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

eeeeh panie kolego no przecież ten kod nie dotyczy bootloadera tylko właśnie watchdoga


Autor postu otrzymał pochwałę

_________________
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: 2 mar 2016, o 15:39 
Offline
Moderator
Avatar użytkownika

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

MrNew napisał(a):
Na razie zrobiłem tak:


No widzisz i weź tu z tobą rozmawiaj ;) ..... pokazuję jak to zrobić, piszę już od kilku postów uzbrajając się w mega cierpliwość - a ty na końcu robisz salto mortale i wyczyniasz jakieś dziwne rzeczy ... sorki ale bez sensu

Powiedz mi jaki jest cel - że zamiast zrobić to w takiej postaci jak pokazałem czyli w sekcji INIT to strzeliłeś to do main ?
Gwarantuję ci, że kiedyś zdziwisz się, że nie zadziała ci to w main i później znowu będziesz zakładał wątek i pisał - że nie działa ci to co polecał Mirek ... Gdy tymczasem zrobiłeś to całkowicie inaczej

Na wszelki wypadek przypomnę ci , że przed startem funkcji main, kompilator C musi a to zainicjalizować stos, a to wyzerować zmienne globalne, a to ustawić wartości zmiennych jeśli je inicjalizujemy jakimiś wartościami w tym stałe dosłowne itp itd. Wykonuje te zadania w tzw sekcjach inicjalizacyjnych, gdzie my możemy niektóre z nich sami oprogramować a nawet jak się uprzemy - wszystkie możemy po swojemu zrobić .... Chodzi o to, że kod wyłączający watchdoga powinien odbyć się jak najszybciej - jeszcze przed main ... i po to przygotowałem kod takiej sekcji ... eeeeeh

_________________
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: 2 mar 2016, o 19:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Przeczytałem Waszą dyskusję o "watchdogu i nie tylko" i nie rozumiem Twojego problemu.
Mirka opis związany z umieszczaniem wywołania wyłączania watchdoga związany jest z tym, że watchdog liczy sobie po swojemu i nie synchronizuje się z innymi działaniami procesora. Jeżeli masz ustawiony przy starcie procesowa włączony watchdog to zanim program wejdzie do funkcji main() to musi przejść przez kupę kodu inicjalizacyjnego, który dodaje kompilator a użytkownik piszący w C normalnie go nie widzi (chyba, że zajrzy do wygenerowanego kodu - plik *.lss). I teraz pojawia się problem, bo timer watchdoga może być krótszy niż czas jaki zajmuje dojście do kodu w main(). Dlatego bootloader wyłącza watchdoga na samym początku, jeszcze w tych "ukrytych" sekcjach .init. Gdyby tego nie zrobił i procesor łapał się na reset watchdoga, to procesor wylądował by w stanie permanentnego "reseto-inicjalizacji" (zanim skończy się inicjalizacja następuje nowy reset). U ciebie dochodzi do wykonywania operacji z twojego kodu przez procesor (wyświetlanie na wyświetlaczu) więc nie masz problemu za późnym wyłączaniem / zmianą parametrów watchdoga.

Z drugiej strony Twoje podejście do programu jest w najgorszym możliwym stylu -jak coś nie działa to trzeba dodać dodatkowe resetowanie a nie szukać błędu i przyczyn problemu (jak oprogramowanie Microsoftu - reset dobry na wszystko). Takie podejście kiedyś się zemści, bo będziesz chciał użyć czegoś co napisałeś i tak Ci działało (z resetami), ale w nowym projekcie już nie będzie tak łatwo i bezboleśnie dawało się resetować. Przez to stracisz kupę czasu na analizowaniu starego kodu lub będziesz musiał wyrzucić cały stary kod i pisać wszystko od początku.

Zrób tak jak Mirek Ci pisał - ogranicz funkcjonalności i znajdź przyczynę problemów zawieszania. Watchdoga zostaw na problemy nieprzewidywalne o jakich jeszcze nie wiesz, że się wydarzą.

--
Pozdrawiam,
Robert

PS. Nie wiedziałem Mirku, ze interesujesz się takimi tematami (chodzi o tego polecanego pdf-a) :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2016, o 20:32 
Offline
Moderator
Avatar użytkownika

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

rskup napisał(a):
PS. Nie wiedziałem Mirku, ze interesujesz się takimi tematami (chodzi o tego polecanego pdf-a)

hmm nie nie to nie zaraz tam zainteresowania - ot trafiłem na zbyt ciekawe dla mnie określenia i musiałem przynajmniej zobaczyć "co to takiego" ;)

_________________
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: 3 mar 2016, o 20:36 
Offline
Moderator
Avatar użytkownika

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

eeeeh ..... no pomyśl sobie po co bym dawał ten kod:

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


wstawiasz go przed main - czy ty żartujesz? czy nie widzisz że to jest właśnie ta sekcja? ... sorry ale już nie wiem jak inaczej wyjaśnić. Więc wstaw to do swojego kodu - zamiast wydłubywać z niej flaki i wciskać je do main.

_________________
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: 3 mar 2016, o 20:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1188
Lokalizacja: Kraków
Pomógł: 95

przecież w artykule o mkbootloader
Cytuj:
jest napisane, że należy to wpisać przed main(). Wystarczyło przeczytać. Pozwolę sobie zacytować fragment:
Cytuj:
Będzie to zatem sekcja "init3". Poniżej prezentuję kod tej sekcji jaki możemy albo nawet powinniśmy umieszczać w kodzie własnego programu (można go umieścić jeszcze przed funkcją main), aby wyłączyć Watchdoga.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2016, o 21:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

O sekcjach, ich znaczeniu oraz sposobie użycia masz napisane w AVR Libc Reference Manual:
http://www.atmel.com/webdoc/AVRLibcRefe ... _init.html
http://www.atmel.com/webdoc/AVRLibcRefe ... tions.html

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2016, o 22:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Bo masz w kodzie funkcję static, której nie wywołujesz. A logika w Eclicpse nie ma zawartego warunku, że taka funkcja to jest tak samo systemowa jak main() i jest wykorzystywane przez linker a nie przez Twój kod.
Kompilator już nie powinien Ci tego wyrzucać.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2016, o 23:03 
Offline
Moderator
Avatar użytkownika

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

MrNew napisał(a):
A co to za warning?

To nie jest żaden warning, tylko ostrzeżenie Eclipsa ... tyle razy mówiłem i powtarzałem - sprawdzaj okno CONSOLE i tam obserwuj czy masz warningi albo errory - to się liczy

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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO