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



Teraz jest 6 lut 2025, o 22:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 29 ] 
Autor Wiadomość
PostNapisane: 8 mar 2013, o 22:54 
Offline
Nowy

Dołączył(a): 23 lut 2013
Posty: 12
Zbananowany użytkownik

Pomógł: 0

Chciałem się pobawić przerwaniami z użyciem Timer0, mam na nim i na Timer1 przyciski i chciałbym, aby np. 5- krotne naciśniecie przycisku uruchamiało przerwanie i zapalała się dioda, ale nie za bardzo wiem jak to napisać w C...
Mam taki kod, ale nie wiem za bardzo jak go zmienić żeby pasował do tego co potrzebuję, czy mogę liczyć na waszą pomoc? Procek to atmega8, diody mam na PD0-PD3, przyciski PD4-PD7, największym problemem jest ustawienie wartości początkowej, nie wiem jak ją policzyć i jak mam ustawić żeby zliczał np. 5 lub jakąś inną liczbę naciśnięć przycisku, pętla while() powinna być pusta? Czy trzeba coś tam wpisać? Bardzo dziękuję za każdą odpowiedź :)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Kod wstawiamy przy pomocy [syntax=c] - Zielony J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 mar 2013, o 23:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 lip 2012
Posty: 157
Pomógł: 8

Do czego Ci te przerwania jeśli chcesz tylko obsługiwać przyciski?? Popatrz jak poprawnie skonfigurować wejscia i wyjscia mikroklocka.

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


a nastepnie dodaj funkcje eliminacji drgan stykow. Utwórz zmienna która bedzie przechowywała ilość impulsów z przycisku i na jej podstawie zapalaj lub gaś diode



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 mar 2013, o 23:22 
Offline
Nowy

Dołączył(a): 23 lut 2013
Posty: 12
Zbananowany użytkownik

Pomógł: 0

Chcę zrobić na przerwaniach, żeby się ich nauczyć na prostym przykładzie. Poza tym prowadzący zajęcia powiedział, że muszę napisać taki program na przerwaniach



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 mar 2013, o 23:53 
Offline
Moderator
Avatar użytkownika

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

Po pierwsze od razu zlikwiduj to:

#define F_CPU 1000000

bo cię to zgubi wcześniej czy później.

Po drugie poczytaj tu o sposobach obsługi przycisków

http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html

Po trzecie nie używaj przestarzałych makr SIGNAL() tylko ISR()

_________________
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: 9 mar 2013, o 00:01 
Offline
Nowy

Dołączył(a): 23 lut 2013
Posty: 12
Zbananowany użytkownik

Pomógł: 0

dziękuję za linka, zaraz biorę się za czytanie. A czy coś więcej na temat przerwań powiecie mi? Bo na różnych stronach są albo makra SIGNAL() albo jakieś bezsensowne i nie zrozumiałe informacje, a to nie jest wcale takie proste... przynajmniej dla mnie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 mar 2013, o 00:48 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 244
Pomógł: 2

Ale co konkretnie chcesz wiedzieć?

Co do SIGNAL() a ISR(), to chodzi o to że SIGNAL() też Ci zadziała, ale jest to już niezgodna z normami forma, nawet w datasheet AVR'ów od Atmela o tym piszą. Teraz używa się ISR().

Jeśli to nie jest dla Ciebie proste, to kup niebieską książkę, na prawdę. Nie żebym tutaj usilnie mówił kup,kup kup bo i tak nie mam z tego nic :P Ale jest to tam na prawdę fajnie opisane, i ogarniesz sprawę bez żadnego problemu.

Ode mnie tyle żeby nie używać _delay_ms(); w przerwaniu (chyba że CELOWO i UMYŚLNIE + przeanalizowanie działania), tu się można czasami naciąć bo np w przerwaniu dasz obsługę LCD, wrzucasz funkcję w której na pierwszy rzut oka nie ma delay-ów, ale jak wejdziesz w nią to nagle zonk bo kilka delayów a Ty się zastanawiasz czemu program Ci się wiesza :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 mar 2013, o 13:06 
Offline
Nowy

Dołączył(a): 23 lut 2013
Posty: 12
Zbananowany użytkownik

Pomógł: 0

No tak ale książka tania nie jest, i nie dostanę jej dziś ani jutro a muszę mieć ten program na wtorek... Czy mógłby ktoś wysłać np. skana z przerwaniami z tej książki lub jakoś w dostępny sposób to opisać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 mar 2013, o 13:31 
Offline
Moderator
Avatar użytkownika

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

matt90 napisał(a):
No tak ale książka tania nie jest, i nie dostanę jej dziś ani jutro a muszę mieć ten program na wtorek... Czy mógłby ktoś wysłać np. skana z przerwaniami z tej książki lub jakoś w dostępny sposób to opisać?


wysłać skana powiadasz ? ..... no no no, fajne podejście ..... szok :shock:

czy nie pomyliły ci się przypadkiem strony internetowe ? jeśli chcesz dołączyć do piratów to jak najszybciej opuść pan tę stronę i odwiedź serwisy gdzie takie pirackie wersje rozpowszechniają - masakra .... no nie wierzę

a może to nie dzieje się na prawdę - żeby ktoś na bezczelnego - wręcz do autora się zwracał czy może mu powiedzieć skąd ściągnąć piracką wersję książki.

_________________
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: 9 mar 2013, o 13:41 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3212
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

matt90 napisał(a):
No tak ale książka tania nie jest, i nie dostanę jej dziś ani jutro a muszę mieć ten program na wtorek... Czy mógłby ktoś wysłać np. skana z przerwaniami z tej książki lub jakoś w dostępny sposób to opisać?


Skanowanie książek to naruszanie praw autorskich twórców. Więc pisanie tego akurat na firmowym forum jest co najmniej nie na miejscu.

Masz jeszcze kilka dni, pytaj a dostaniesz odpowiedzi.

Skanów nie dostaniesz, a jeśli ktoś by się odważył może się spotkać z konsekwencjami.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 mar 2013, o 15:42 
Offline
Nowy

Dołączył(a): 23 lut 2013
Posty: 12
Zbananowany użytkownik

Pomógł: 0

Ok, nie wiedziałem, że to aż takie przewinienie. Chciałbym wiedzieć w jaki sposób uruchomić timer0, z później skonfigurować przerwania, czy w pętli while() musi być coś wpisane czy to ma być pusta pętla?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2013, o 22:08 
Offline
Nowy

Dołączył(a): 30 mar 2013
Posty: 19
Lokalizacja: Częstochowa
Pomógł: 0

Witam,
Może podłączę się do tematu. Sam zaczynam przygodę z mikrokontrolerami. Obecnie jestem po przestudiowaniu podstaw. Umiem konfigurować fusebity, porty itp. Zabrałem się obecnie za liczniki. Mam kilka programów, które dotyczą liczników z czasów szkoły. Na tamtejszym procesorze działały. W przypadku mojego układu zmontowanego na płytce stykowej nie działają. Poniżej zamieszczam przykład kodu, który według mnie powinien migać diodą, a tego nie robi. Program ma za zadanie odliczyć sekundę...

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


Co robię źle? Przetrzepałem całego datasheet atmegi8A (dział timer0). Nic więcej mi nie przychodzi do głowy...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2013, o 22:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 lut 2013
Posty: 94
Lokalizacja: Turek
Pomógł: 5

Ten kod nie ma prawa działać , on Ci się nawet nie skompiluje tak jak pisał Mirek zobacz również ten link http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2013, o 22:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Brakuje includów. Pętlę nieskończoną zapisz tak: while(1);
return w main nie potrzebny.
Nie definiujemy częstotliwości taktowania w kodzie. Robimy to we właściwościach projektu.
Zmienna licznik z atrybutem volatile: volatile uint8_t licznik
Jesli chcesz zmienić stan na porcie to nie pisz POTRC=~PORTC ale: PORTC ^=PORTC
Dodatkowo strasznie 'brzydko' ;) ustawiasz rejestry odpowiedzialne za timer. Pan Mirek w bluebooku świetnie opisał jak robić to czytelnie np: TCCR0 |=(1<<COM01) (nazwy pisane z głowy, mogłem sie pomylić).
Pisz komentarze bo trudno czasami Twój kod zrozumieć.
Do wrzucania kodu używamy syntax.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 05:48 
Offline
Nowy

Dołączył(a): 30 mar 2013
Posty: 19
Lokalizacja: Częstochowa
Pomógł: 0

Nie wiem czemu ale syntax je zjada...nie umialem tego poprawic. W include bylo avr/io.h oraz avr/interrupt.h. Co do przejrzystosci kodu...pisalem tak jak mowicie ale tez nie dzialalo. To co wkleilem to ostateczna wersja tego co naskrobalem. Jesli chodzi o definiowanie procesora, to jesli tego nie zrobie to program Avr Studio 4 wywala "warning". Gdzies w pierwszym z tutoriali na youtube ukazanych przez Pana Mirka znalazlem taki zapis. Poki co jestem absolwentem na stazu wiec kieszen postudencka nie pozwala na kto wie jakie ksiazki:p Korzystam z dostepnych tutoriali ale przyznam ze malo tego. W dodatku sa przestarzale...Sorki za brak polskich znakow ale ciekawosc mnie przerasta a w.telefonie brak polskich znakow:p Dzis siade do dalszej walki po pracy...odwiedze ten post jeszcze:p to jest nieuniknione



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 06:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Zobacz w moim poprzednim poście jakie zmiany wprowadzić. Czy próbowałeś napisać program choćby z delayami?
np
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jakiego używasz procesora, i jaki masz programator?

Żeby syntax działał dobrze: [syntax=c]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 07:15 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3212
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

ravers_19 napisał(a):
Nie wiem czemu ale syntax je zjada...nie umialem tego poprawic. W include bylo avr/io.h oraz avr/interrupt.h.


"Zjada" bo był źle wpisany syntax=C zamiast syntax=c.

Mam wrażenie że wpisywałeś go ręcznie zamiast wybrać z rozwijalnej listy.

Syntax poprawiony.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 08:24 
Offline
Nowy

Dołączył(a): 30 mar 2013
Posty: 19
Lokalizacja: Częstochowa
Pomógł: 0

Jak najbardziej....pisalem to recznie:). Oj opcje delay wykorzystywalem jakis czas temu. Zrobilem juz kilka projektow mniejszych majacych na celu przypomnienie wiadomosci i nauke nowego materialu. Tym razem padlo na timery stad moje pytania. Poki co nic nie wprowadzalem poniewaz jestem w pracy. Jak wroce do domu siadam do dalszej walki:p Tak latwo sie nie poddam! ;) Czesc moich przyzwyczajen z programowania w c, c++ oraz c# niezbyt pasuje tutaj;) W koncu procek nie do konca dziala tak jak aplikacje komputerowe. Do nauki wykorzystuje avr studio 4, procek atmega8a-pu oraz programator avr mkII. Uklad poki co posiada kilka diod buzzer z generatorem, 7seg wyswietlacz(4 pozycje) i kilka mikroswitch'y. Jak ogarne wszystko co mozna na tym ukladzie ogarnac, zabiore sie za inne rzeczy typu wyswietlacz elementy onewire czy komunikacja miedzy dwoma procesorami;) Malymi kroczkami do sukcesu;) W koncu nie od razu rzym zbudowano:p Skonczylem Elektronike ale o prockach nieduzo sie uczylem ze wzgledu na malo zajec. Ale jak juz ich posmakowalem, stwierdzilem ze to moje 2gie ja i tym chce sie zajmowac...poza tym lubie programowac:) Poprawie kod w domu i dam znac co wyszlo:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 14:51 
Offline
Nowy

Dołączył(a): 30 mar 2013
Posty: 19
Lokalizacja: Częstochowa
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.



Znalazłem przykład w necie, który lekko zmodyfikowałem pod moje wyprowadzenia. Dalej nie działa miganie diodami ehh. Czekam na jakieś sugestie. Tymczasem sam walczę dalej. Chyba się poddam...przeskanowałem tyle przykładów na moim procku a on ani drgnie. Wykorzystałem nawet obcojęzyczne przykłady do nauki i nic. Ta porażka zniechęca mnie;/ idę odpocząć bo już nie mam siły :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 18:21 
Offline
Nowy

Dołączył(a): 30 mar 2013
Posty: 19
Lokalizacja: Częstochowa
Pomógł: 0

Teraz zauważyłem, że timer jednak działa. Zaobserwowałem ustawiając go odpowiednio i sprawdzając warunek w while czy doliczył do danej liczby. Jeśli tak to zmienia stan diody na przeciwną. Czyli timer działa a nie działa przerwanie od niego (ISR....).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 18:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Spróbuj w przerwaniu ustawiać jedynie flagę, a resztę wykonywać w pętli głównej.

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: 9 kwi 2013, o 19:02 
Offline
Nowy

Dołączył(a): 30 mar 2013
Posty: 19
Lokalizacja: Częstochowa
Pomógł: 0

Być może jest to rozwiązanie, nie mniej jednak cała ta zabawa ma cel naukowy, i dziwi mnie, że wszędzie przykłady są podawane w ten sposób a żaden na mojej płytce nie działa:P

------------------------ [ Dodano po: 4 minutach ]

Zrobiłem tak jak kazałeś:P Ewidentnie przykład nie chodzi...czyli nie jest obsługiwana funkcja przerwania;/

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: 9 kwi 2013, o 19:38 
Offline
Użytkownik

Dołączył(a): 14 sty 2013
Posty: 36
Pomógł: 2

A sprawdź to

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


dioda oczywiście na PC0



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 19:48 
Offline
Nowy

Dołączył(a): 30 mar 2013
Posty: 19
Lokalizacja: Częstochowa
Pomógł: 0

Nie chce pogrążać ale dalej nie działa:) Przejrzałem wszystkie połączenia. Wszystko jest ok. Zmieniłem atmege8 na druga, efekt ten sam. Posiadam AVR Studio 4, MkII - programator, zwykła atmege8a-pu, do tego mam 6 diod P0-P5 połączone przez rezystory ograniczające prąd, zasilanie 5V z programatora (czyt. USB), kondensatory filtrujące na VCC-GND i rezystor 10k na RST. Najprostszy możliwy układ...I co jest nie tak? Nie wiem czy jest to problemem ale kwarc jest wewnętrzny 1MHZ, zmiana przykładowo na 8 nic nie dała.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 19:55 
Offline
Użytkownik

Dołączył(a): 14 sty 2013
Posty: 36
Pomógł: 2

Ale czy zmieniałeś coś w linii?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to ważne, spróbuj dokładnie z takim ustawieniem i tylko jedną diodą.

Najlepiej skopiuj kod i sprawdź.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 20:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Napisz obsługę przerwania za pętlą główną.

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


Spróbuj z tym.
A w konsoli po kompilacji nie ma żadnych błędów lub ostrzeżeń?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 20:09 
Offline
Nowy

Dołączył(a): 30 mar 2013
Posty: 19
Lokalizacja: Częstochowa
Pomógł: 0

Hmm...Coś nie coś mam. Otóż zainstalowałem sobie Eclipse. Problem w tym, że nie potrafię sobie programatora tam dodać AVR PROG MKII. Nie mniej jednak program napisany przeze mnie i skompilowany w Eclipse (stworzony makefile), który kolejno wrzuciłem do atmegi przy pomocy AVR Studio DZIAŁA :| czyżby coś AVR Studio szwankował?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 20:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Możliwe że AVR studio coś psuło. Pokaż Twój działający kod. Jak masz ochotę to sprawdź czy mój ostatni kod działa.
Co do programatora:
Wybierz jakiś projekt:
Project=>Properties=>AVR=>AVRDude=>New=>wybierz swój programator, musisz jeszcze z jakiego portu korzysta programator.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 20:42 
Offline
Nowy

Dołączył(a): 30 mar 2013
Posty: 19
Lokalizacja: Częstochowa
Pomógł: 0

Dziś już nie mam siły na walkę z dodaniem programatora. Na spokojnie nie idzie:)
Oto kod który miga diodą, a powinien zestawem diód...Napisany w AVR Studio 4 a nastepnie zaprogramowany, nie działa. Napisany w Eclipse i zaprogramowany AVR Studio 4 działa, lecz wartość na portach, bez względu jaką nie podam, nie ma znaczenia. Cały czas miga 1 dioda xD Mało tego dodam, że plik HEX napisany w AVR Studio jest dwa razy dłuższy niż plik z Eclipse.

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: 9 kwi 2013, o 21:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Napisz:
DDRC = 0xff;



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

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