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



Teraz jest 5 lip 2026, o 15:28


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 12 kwi 2013, o 10:04 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Witam. Stworzyłem sobie funkcję do obsługi klawisza opierając się na blogu. Pomijam tutaj wszystkie nagłówki itd. ponieważ dla innej obsługi klawisz (z delay'ami) program działa poprawnie.

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


Następnie w pętli w main.c mam

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

Problem w tym, że jak raz nacisnę przycisk to d zaczyna rosnąć, nawet wtedy gdy zwolnię klawisz (widzę to na LCD). Oznacza to że warunek if(klawisz(plus)) po naciśnięciu i zwolnieniu jest cały czas spełniany. Dlaczego ??? Przecież jak zwolnię klawisz to if( !key_lock && !(PINC & KEY1 ) ) nie powinien być spełniony a tym samym n powinno przyjąć wartość n=0; i tym samym zwrócić 0. Proszę o wyjaśnienie gdzie źle rozumuję albo co źle zrobiłem.
Poza tym dlaczego w warunku if(klawisz(plus)) nie mogę wstawić średnika za funkcją bo wyskakuje błąd ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 10:51 
Offline
Moderator
Avatar użytkownika

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

Przede wszystkim widać, że na razie w ogóle ale to w ogóle nie zrozumiałeś jak działa taki IF (ten sposób z bloga) do obsługi klawisza, który nieumiejętnie przeniosłeś sobie do swojej funkcji klawisz() :( Proponuję żebyś NAJPIERW postarał się dokładnie zrozumieć jak to działa

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


a później obejrzeć sobie na tym samym blogu, w tym samym artykule tylko że dalej w jaki sposób można sobie wyprowadzić do funkcji

Kod:
key_press()


taką obsługę - bo przecież też masz przykład .... dlaczego nie przeczytałeś całości ?

_________________
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: 13 kwi 2013, o 21:09 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Jakiejś strasznej filozofii w tym nie ma do zrozumienia, chyba, że diabeł tkwi w szczegółach. Po prostu zamiast wskaźnika na funkcję wstawiłem inkrementację wskaźnika i mimo to nie działa :( Wartość wskaźnika po naciśnięciu przycisku wzrasta tylko o jeden i później nie ma już reakcji na wciśnięcie :( Może jakaś mała podpowiedź ?

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


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


------------------------------------------------------------
Ok rozumiem (chyba). key_lock=xxx; trzeba dobrać doświadczalnie, bo jeżeli dobierze się zbyt nisko, to po zwolnieniu przycisku ( i ewentualnych drganiach) może ona nie osiągnąć wartości 0 w drugim warunku.
Zmieniłem teraz na:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i działa. Ale gdy wstawię np. key_lock=240; to działa za 3-4 razem. Im niższy key_lock to działa gorzej. Mam nadzieję, że oto chodziło :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2013, o 08:07 
Offline
Moderator
Avatar użytkownika

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

dobra ok, powiem tak - twój kod z pierwszego postu MUSI działać i działa ;) mój błąd, że jakoś za szybko rzuciłem okiem na tą twoją funkcję okiem nie zwracając uwagi na zdefiniowaną w niej zmienną automatyczną

Kod:
uint8_t n=0;


ja po prostu raczej pisałem to z myślą o ew użyciu wskaźników do funkcji (callbacku) w takiej twojej funkcji klawisz() i dlatego przy nie zwróceniu uwagi na to n=0 albo może wydało mi się że to też jest u ciebie static (wtedy także by nie działała twoja funkcja), pomyślałem że całkiem coś pokiełbasiłeś - no ale teraz przyjrzałem się temu z rana na świeżo i widzę, że nie .... twoja funkcja z pierwszego postu NORMALNIE DZIAŁA tylko ty masz problem gdzieś indziej....

najbardziej zdziwiło mnie twoje pytanie:

qutrit napisał(a):
Poza tym dlaczego w warunku if(klawisz(plus)) nie mogę wstawić średnika za funkcją bo wyskakuje błąd ?


tzn jak chciałeś to wpisać u siebie tak ????????

Cytuj:
if( klawisz(plus); )


no coś ty ? a co to miałoby znaczyć ? no sam spójrz przecież kompilator słusznie krzyczy że to błąd. Przecież średnik jest po to aby zakończyć linię a ty chcesz go w środku warunku IF dać ? ;)

ale ok .... teraz skupmy się (cały czas trzymając się twojego pierwszego postu) nad tym dlaczego tobie ta twoja własna funkcja klawisz() nie działa a u mnie i teoretycznie i praktycznie działa. Powodów może być kilka, ale lepiej by było gdybyś pokazał większy kawałek tamtego twojego kodu - bo mogę tylko przypuszczać, że:

1. nie dałeś podciągnięcia programowego ani zewnętrznego linii klawisza do VCC, czyli zakładając że u ciebie "plus" to było np:

Kod:
#define plus (1<<PC7)


to nie zrobiłeś w kodzie np:

Kod:
PORTC |= plus; // podciągamy linię klawisza do VCC


wtedy mógł się warunek albo cały czas spełniać albo działać w kratkę bo na wejściu był pływający stan HiZ

być może też masz switcha z jakimś strasznie długimi drganiami albo zepsutego wręcz, i powinieneś był wydłużyć ten czas key_lock zgodnie z opisem na blogu, tyle że też nie powinna ci się wciąż zwiększać zmienna d++ chyba że się tak uparłeś na ten średnik po IF że w rzeczywistości swój kod napisałeś wtedy nieco inaczej niż pokazałeś czyli tak:

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


a widać, że kodu tutaj raczej nie kopiowałeś i wklejałeś tylko pisałeś z ręki (tak mi się wydaje) bo napisałeś While zamiast while a tego by ci kompilator też nie przepuścił ;)

więc generalnie w całym kodzie mogłeś zrobić jeszcze więcej błędów :(

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

No i teraz dalej - bierzemy się za twój drugi post i PIERWSZY przykład - jeśli to jest cały kod main.c

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


tak nawiasem powiedz mi w czym ty piszesz swoje kody źródłowe ??? przypadkiem nie w AVR Studio dzięki któremu nie widzisz połowy warningów i błędów ??? bo wystarczy spojrzeć na twój kod na górze:

Cytuj:
main();
{
....


średnik w linii z main() ???? a gdzie w ogóle int main(void) { ....

ale ok pisz jak chcesz i w czym chcesz - w każdym bądź razie ten pierwszy przykład z drugiego postu tak samo MUSI działa tylko nie u ciebie bo co ? bo tu już WYRAŹNIE w main.c przynajmniej widać że nie masz podciągnięcia programowego linii klawisza do VCC. No chyba że fizycznie masz tam gdzieś w swoim układzie rezystorami zewnętrznymi podciągniętą tą linię klawisza ????

W każdym bądź razie - pamiętaj - OBA TE przypadki twoje (u ciebie rzekomo nie działające) nie tylko MUSZĄ działać teoretycznie (czyli dobrze sobie to wymyśliłeś) ;) to jeszcze działają praktycznie bo sam sprawdziłem na swoim podręcznym zestawie ATB - mam teraz z rańca chwilkę czasu.

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

za to ten przykład na końcu gdzie dałeś key_lock=254; to szok - to by oznaczało jednak że nie zrozumiałeś jak działa ten przykład :( ... przecież w tym przypadku W OGÓLE ale to w NAJMNIEJSZYM stopniu nie reagujesz na DRGANIA STYKÓW przecież. Więc ten ostatni przykład gdzie niby zrozumiałeś - to jednak jest najgorszy.

uuuff ale się rozpisałem - sprawdź sobie dwa pierwsze tak jak opisałem i wszystko będzie ci działać ;) i jeśli piszesz w AVR Studio to szybko zamień to na Eclipse ;)

_________________
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: 15 kwi 2013, o 10:55 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Dzięki za wyczerpującą odpowiedź. Nie mniej jednak nie mogę sobie poradzić z tym problemem, próbuje na wszystkie strony i nic.
Co do main();, While(1), tak pisałem z pamięci (w pracy ), stąd te błędy ;)
Co do problemu:
Przycisk mam podłączony do nóżki procesora i masy układu.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

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

W while(1) nie ma nic więcej oprócz obsługi przycisku i LCD. Układ (jak jest to zakomentowane) działa poprawnie dla poprzedniej wersji obsługi przycisku.

Cytuj:
za to ten przykład na końcu gdzie dałeś key_lock=254; to szok - to by oznaczało jednak że nie zrozumiałeś jak działa ten przykład :( ... przecież w tym przypadku W OGÓLE ale to w NAJMNIEJSZYM stopniu nie reagujesz na DRGANIA STYKÓW przecież. Więc ten ostatni przykład gdzie niby zrozumiałeś - to jednak jest najgorszy.

Tak też myślę, bo to są zaledwie 2 takty procesora do przepełnienia. Tylko jak to pogodzić z faktem, że dla key_lock=254; układ działa. Zmienna d się zwiększa.

A najgorsze jest to, że okaże się, że to jakaś pierdółka jest źle zadeklarowana (np. nie w ty miejscu co potrzeba). Ale tak to jest, że jak się patrzy cały czas na swój kod, to ciężko dostrzec błąd.



Ostatnio edytowano 15 kwi 2013, o 11:10 przez qutrit, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 kwi 2013, o 11:10 
Offline
Moderator
Avatar użytkownika

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

ja bym się nie skupiał na tym że akurat działa dla key_lock=254 bo to może być czysty przypadek , musi działać tak samo dla key_lock=1 albo i key_lock=50000. I w tym kierunku bym to sprawdzał - bo jak może nie działać skoro poprzedni warunek (funkcja działa)

ale zaraz zaraz co ty robisz ? no sam zobacz - skoro u ciebie przyciski to PD7, PD6 i PD5 to po jakiego grzyba w ogóle ustawiasz kierunki tych pinów i to jeszcze jako WYJŚCIA ??? ;)

DDRD |= 0b11100000;

ja proponuję może wklejaj to co masz w kodzie i co testujesz a nie pisz z pamięci ;) bo wtedy to ciężko się dogadać ....

skasuj tą linię w ogóle - (o ile ją masz) .... przecież po resecie o tak te piny klawiszy są wejściami a na drugi raz jak chcesz uniknąć takich MEGA CZESKICH błędów - to jednak postaraj się działać z techniką dobrego programowania czyli tak

PORTD |= enter|minus|plus;

albo

PORTD |= (1<<PD7)|(1<<PD6)|(1<<PD5);

albo

DDRD &= ~( (1<<PD7)|(1<<PD6)|(1<<PD5) );

a nie jakieś tam

DDRD |= 0b11100000;

to sam zaczniesz popełniać mniej błędów

_________________
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: 8 wrz 2013, o 18:17 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Witam
Sprawa dotyczy przycisków, więc piszę tutaj :-) Mam funkcję obsługi przycisku i zdefiniowaną:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak widać krótkie wciśnięcie powoduje zmiane stanu diody przy porcie PB1, dłuższe wciśnięcie zmianę stanu diody na porcie PB2
Funkcja main()
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Gdy zakomentowana jest jedna to druga działa wyśmienicie :-)
Gdy klawisz(plus) i klawisz(minus) są odkomentowane (_delay_ms(1); zakomentowany) to nie działają - dioda przygasa tak jakby b.szybko migała. Po zwolnieniu przycisku ustala się stan przypadkowy.
Gdy _delay_ms(1); jest odkomentowany i klawisz(plus) i klawisz(minus) są odkomentowane to dioda PB1(gdy obojętnie który przycisk wciśnięty i trzymany) miga w sposób zauważalny ( na oko z częstotliwością 0,3Hz)???? Kombinuję z czasami i nic to nie pomaga.
Co może być przyczyną takiego zachowania ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2013, o 19:32 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Twoja funkcja ma wspólne zmienne dla obu przycisków. Przeanalizuj sobie co się stanie jak jeden jest wciśnięty a drugi puszczony. Można temu zaradzić:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2013, o 21:30 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Działa SUPER :-)
Nigdy bym na to nie wpadł. Szczerze mówiąc to za bardzo nie wiem , jak to działa.
Mamy zamiast zmiennych
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

których argumentem jest w moim przypadku zmienna 'key'. I teraz jeżeli przycisk podłączony jest do PD6 czyli binarnie 0b01000000; to odpowiada to liczbie dziesiętnej chyba 64. No i tutaj już nie ogarniam :-(..............
Mógłby kolega troszeczkę przybliżyć, co się z tym dzieje. Nawet gdy się przyjmie
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to też pięknie działa :-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2013, o 22:52 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Jest źle i przypadkiem zadziałało :| . Tak byłoby dobrze:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

I wymaga to niestety jeszcze zmian w konfiguracji i zmiany zdefiniowanych symboli plus i minus.
W C nie ma kontroli nad przekroczeniem indeksu tablicy i można sobie zrobić w programie niezły bigos. W oparciu o adres tablicy były zmieniane komórki pamięci inne niż przynależne do tej zmiennej.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



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

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Oczywiście, że tak zrobiłem jak kolega wyżej napisał, wszędzie pozmieniałem na key_lock[8], flag[8];. Tylko nijak nie wiem jak to ma działać, tzn. dlaczego to działa. Jak 'wartość portu' (zmienna key) indeksuje tablice, tzn. jak np PD6 przeliczane jest na zmienną key;, która występuje chociażby w key_lock[key] ??
Nawet jak przyjmę:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
to też b. dobrze działają obydwa przyciski; chociaż tutaj jak kolega wspomniał może odgrywać rolę brak kontroli nad rozmiarem tablicy.
W sumie najważniejsze że działa, ale gdyby kolega coś więcej napisał, to byłoby super.
Dzięki.

Aaaaa chyba zrozumiałem. Chodzi oto żeby najpierw gdzieś poza funkcją klawisz(uint8_t key) powołać jakąś funkcję która będzie mi zamieniała wciśnięty przycisk na odpowiednią cyfrę z przedziału 0-7 :-) To znaczy odpowiednim portom od PD0 do PD7 przypisać cyfry od 0 do 7. I dopiero te cyfry używać jako zmienną 'key;' w funkcji klawisz(); :?: :?: :?:

Natomiast samo przypisanie np. do PD0 cyfry 0 to chyba trzeba jakieś maskowanie zrobić ?
lub np. za pomocą funkcji typu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
.
Chyba że jest prostszy sposób :?: :?: I wogóle czy dobrze rozumuję :?: :?:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2013, o 18:02 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Jak sobie zaznaczysz PD6 i klikniesz prawym klawiszem to masz taką opcję jak Open Declaration (lub klawisz F3 w Eclipse), która pokaże co kryje się za tym symbolem:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Inny przykład. Poniższe 2 linie robią dokładnie to samo, chociaż druga jest błędna, ale tylko dlatego, że utrudnia analizę programu.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2013, o 00:03 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

I nastała jasność dzięki podglądowi Open Declaration .......chyba że nie.
Teraz wiem dlaczego PB2 = PA2 = PC2 = PD2, ponieważ wyrażenia sprowadzają się do wartości 2 :) O wiele ważniejsze jest to wyrażenie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
ponieważ ono odwołuje się do 'szufladki' gdzie jest rejestr stanu całego (w tym przypadku) portu D :)
Więc poprawne mój kod wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak rozumiem gdybym miał przyciski podłączone do portu 0 i 1 to tablice 'key_lock[8], flag[8];' mogłyby być dwuelementowe czyli 'key_lock[2], flag[2];' :?: Pytam bo nie mam jak sprawdzić bo akurat te porty mam zajęte przez LCD. Zresztą jak wstawię '2' to nie funkcja klawisz(...); nie działa prawidłowo.
Dzięki serdeczne jeszcze raz :) (szkoda, że nie ma emotki z piwem ;) )
--------------- dodano-----------
Ale można zrobić w taki 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.

:)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO