Fórum témák

» Több friss téma
Fórum » CCS PIC Compiler
 
Témaindító: (Felhasználó 1542), idő: Ápr 3, 2006
Lapozás: OK   108 / 118
(#) kistee válasza don_peter hozzászólására (») Ápr 10, 2015 /
 
Nem hibás, mert a display7seg_date() eljárás úgy van megírva, hogy csak egy "pillanatra" jeleníti meg a dátumot. Ezt sűrűn meghívva folyamatos kijelzésnek látszik.

De ki fogom próbálni a while(key1)-et is.
(#) don_peter válasza kistee hozzászólására (») Ápr 10, 2015 /
 
Igen, ha csak egyszer villan fel és utána törli az adatot vagy kinullázza a portot, akkor kell a ciklus, de ha csak a display7seg_date() függvény elején törölnéd a kimeneti adatokat, akkor nem kell a ciklus, elég a késleltetés.
Persze úgy nem lehet túl okosnak lenni, ha nem látjuk a teljes programot
A hozzászólás módosítva: Ápr 10, 2015
(#) kistee válasza don_peter hozzászólására (») Ápr 11, 2015 /
 
Akkor a rend kedvéért a teljes program:

  1. ////////////////////////////////////////////////////////////////////////
  2. //
  3. //          7 seg LED clock w. DS1302 RTC
  4. //
  5. //          Compiler: CCS-C, 5.015
  6. //
  7. ///////////////////////////////////////////////////////////////////////
  8.  
  9. #include <ds1302_clock.h>
  10. #include <DS1302_mod.C>
  11. #ZERO_RAM
  12.  
  13. #define KEY1 PIN_b5  // idő/dátum váltó
  14. //#define KEY2 PIN_A5
  15.  
  16. #define digit1 pin_b0   //ora tizesek
  17. #define digit2 pin_b1   //ora egyesek
  18. #define digit3 pin_b2   //perc tizesek
  19. #define digit4 pin_b3   //perc egyesek
  20. #define digit5 pin_b7   //sec tizesek
  21. #define digit6 pin_b6   //sec egyesek
  22.  
  23. #define kettospont pin_a3
  24. #define kozos_anod 1
  25. #define D 1000
  26.  
  27. BYTE const tab[10] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};  //Közös anód
  28. //BYTE const tab[10] = {0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};  //Közös katód
  29.  
  30. byte day,mth,year,dow,hour,min,sec;
  31. unsigned int8 sec_unit, sec_ten, min_unit,min_ten,hour_unit,hour_ten;
  32. unsigned int8 year_ten,year_unit,mth_ten,mth_unit,day_ten,day_unit,digit;
  33. unsigned int16 i;  
  34.  
  35.  
  36.  
  37. void  display7seg_time()
  38. {
  39.    rtc_get_time( hour, min, sec );
  40.      
  41.       sec=59-sec;       //Bomb clock-hoz...
  42.       sec_unit = sec%10;
  43.       sec_ten  = sec/10;
  44.       min_unit = min%10;
  45.       min_ten  = min/10;
  46.       hour_unit = hour%10;
  47.       hour_ten = hour/10;
  48.              
  49.     digit++;                
  50.  
  51.    if (digit > 5) digit = 0;
  52.   if (digit == 0)              
  53.   {
  54.     OUTPUT_high(digit1) ;  
  55.     if (hour_ten == 0)
  56.     OUTPUT_c(0xFF);              //Nulla kioltás
  57.     else
  58.     OUTPUT_c(tab[hour_ten]) ;
  59.     delay_us(D);
  60.     OUTPUT_low(digit1) ;      
  61.   }
  62.   if (digit == 1)
  63.   {
  64.     OUTPUT_high(digit2) ;
  65.     OUTPUT_c(tab[hour_unit]);      
  66.     delay_us(D);
  67.     OUTPUT_low(digit2) ;
  68.   }
  69.   if (digit == 2)              
  70.   {
  71.     OUTPUT_high(digit3) ;      
  72.     OUTPUT_c(tab[min_ten]) ;  
  73.     delay_us(D);
  74.     OUTPUT_low(digit3) ;
  75.   }
  76.   if (digit == 3)
  77.   {
  78.     OUTPUT_high(digit4) ;
  79.     OUTPUT_c(tab[min_unit]);      
  80.     delay_us(D);
  81.     OUTPUT_low(digit4) ;
  82.   }
  83.   if (digit == 4)               //Másodperckijelzéshez unkomment...
  84.   {
  85.     OUTPUT_high(digit5) ;      
  86.     OUTPUT_c(tab[sec_ten]);  
  87.     delay_us(D);
  88.     OUTPUT_low(digit5) ;
  89.   }
  90.   if (digit == 5)
  91.   {
  92.     OUTPUT_high(digit6) ;
  93.     OUTPUT_c(tab[sec_unit]);      
  94.     delay_us(D);
  95.     OUTPUT_low(digit6) ;
  96.   }
  97.                                //..idáig.
  98. /*
  99.       if (bit_test(sec,0))       //0,5Hz-el villogó pont
  100.       output_low(kettospont);
  101.       else
  102.       output_high(kettospont);
  103. */      
  104. }
  105.  
  106. void  display7seg_date()
  107. {
  108.    rtc_get_date(day,mth,year,dow);
  109.        
  110.       day_unit = day%10;
  111.       day_ten  = day/10;
  112.       mth_unit = mth%10;
  113.       mth_ten  = mth/10;
  114.       year_unit = year%10;
  115.       year_ten = year/10;
  116.              
  117.     digit++;                
  118.  
  119.    if (digit > 5) digit = 0;
  120.   if (digit == 0)              
  121.   {
  122.     OUTPUT_high(digit1) ;  
  123.     OUTPUT_c(tab[year_ten]) ;
  124.     delay_us(D);
  125.     OUTPUT_low(digit1) ;      
  126.   }
  127.   if (digit == 1)
  128.   {
  129.     OUTPUT_high(digit2) ;
  130.     OUTPUT_c(tab[year_unit]);      
  131.     delay_us(D);
  132.     OUTPUT_low(digit2) ;
  133.   }
  134.   if (digit == 2)              
  135.   {
  136.     OUTPUT_high(digit3) ;  
  137.     if (day_ten == 0)
  138.     OUTPUT_c(0xFF);              //Nulla kioltás
  139.     else
  140.     OUTPUT_c(tab[mth_ten]) ;  
  141.     delay_us(D);
  142.     OUTPUT_low(digit3) ;
  143.   }
  144.   if (digit == 3)
  145.   {
  146.     OUTPUT_high(digit4) ;
  147.     OUTPUT_c(tab[mth_unit]);      
  148.     delay_us(D);
  149.     OUTPUT_low(digit4) ;
  150.   }
  151.   if (digit == 4)
  152.   {
  153.     OUTPUT_high(digit5) ;
  154.     if (day_ten == 0)
  155.     OUTPUT_c(0xFF);              //Nulla kioltás
  156.     else
  157.     OUTPUT_c(tab[day_ten]);  
  158.     delay_us(D);
  159.     OUTPUT_low(digit5) ;
  160.   }
  161.   if (digit == 5)
  162.   {
  163.     OUTPUT_high(digit6) ;
  164.     OUTPUT_c(tab[day_unit]);      
  165.     delay_us(D);
  166.     OUTPUT_low(digit6) ;
  167.   }
  168.     output_high(kettospont);
  169. }
  170.  
  171.  
  172. void main()
  173. {
  174.    rtc_init();
  175.    //rtc_set_datetime(10,4,15,5,7,47);
  176.      
  177.  
  178.    While (TRUE)
  179.    {
  180.      
  181.       /*if(!input(KEY1))       //INCREASE HOUR
  182.          {
  183.             delay_ms(300);
  184.             hour++;
  185.             if(hour > 23) hour = 0;
  186.             rtc_set_datetime(day,mth,year,dow,hour,min);
  187.          }
  188.          
  189.          
  190.       if(!input(KEY2))        //INCREASE MIN
  191.          {
  192.             delay_ms(300);
  193.             min++;
  194.             if(min > 59) min = 0;
  195.             rtc_set_datetime(day,mth,year,dow,hour,min);
  196.          }
  197.          */
  198.            
  199.             if(!input(KEY1))
  200.             {
  201.             for (i=1;i<=1000;++i)
  202.             {
  203.               display7seg_date();      //Dátum kijelzése
  204.               delay_us(D);
  205.             }
  206.             }
  207.             else
  208.               display7seg_time();    //Idö kijelzése
  209.              
  210.              //display7seg_time();    //Idö kijelzése
  211.              //display7seg_date();      //Dátum kijelzése
  212.    
  213.    }
  214. }


Van benne pár plusz sor a kísérletezések miatt, majd ha végleges lesz, letisztázom.
(#) don_peter válasza kistee hozzászólására (») Ápr 11, 2015 /
 
ohhh, bár én nem vagyok CSS-es, de a helyedbe azonnal utána néznék a tömböknek kicsit bővebben is, mert szerintem ezt a programot sokkal kevesebből is meg lehet írni..
És ha nem is csak a tömböknek, de a bitléptetésnek bitenkénti műveleteknek mindenképp.
Ha pl.:
  1. OUTPUT_high(digit1) ;
, a kijelző anódját gyújtja vagy kapcsolja a tranzisztort, akkor oda pl egy ilyen is jó lehet:
  1. #define OSZLOP PORTB;
  2. OSZLOP = (0x01<<digit);

Ezzel az egy sorral pl. az összes "OUTPUT_high(digit?) ;"-es sort kiválthatod.
És az is érdekes, hogy digit változót frissítésenként növeled így minden frissítenél egy újabb feltétel érvényesül.
Szerintem ez felesleges, a feltételeket is simán ki lehetne hagyni és akkor egy lefutásnál az összes szegmenst gyújthatná egyesével és adatokat írna rá.
Esetleg pici időzítéseket hagyhatsz a szegmensek közt.
Látom, hogy minden egyes feltételben gyújtod a szegmenst vagy adsz vezérlést a tranzisztoroknak, de ha elbírja az áramkör akkor nem lenne muszáj kapcsolgatni őket, persze ez megnövelheti a fogyasztást.
Így hirtelen ennyi, és kérlek fogadd eszt jó tanácsoknak mind sem kioktatásnak vagy belevauvaunak..
A hozzászólás módosítva: Ápr 11, 2015
(#) kistee válasza don_peter hozzászólására (») Ápr 12, 2015 /
 
Tudom, hogy kicsit "fapadosan" van megírva a program, de két érv szól mellette:

- így át tudom látni a lépéseket (a bit shift-es dolgok nekem kicsit zavarosak...)
- így a digiteket nem kell ugyanarra a portra tennem, oda köthetem őket, ahol épp hely van...
(#) don_peter válasza kistee hozzászólására (») Ápr 12, 2015 /
 
Már csak szőrszálhasogatás, de az is megoldható
Amúgy éppen azt néztem tegnap, hogy hasonló elven írtam meg én is a bináris órám programját.
Érdekes...

ui:
Idézet:
„(a bit shift-es dolgok nekem kicsit zavarosak...)”

Később óriási hasznát veszed
A hozzászólás módosítva: Ápr 12, 2015
(#) Dempsey hozzászólása Ápr 26, 2015 /
 
Sziasztok!
Lenne egy olyan problémám hogy a stringes dolgokat nem nagyon értem. Azt kellene megoldani, hogy jön soros porton egy elég hosszú szöveg, most meg nem mondom hány karakter, de hosszú. Például a beolvasott string 17. karaktere érdekelne. Ha az megegyezik pl. 1-el akkor egy kimenet legyen aktív. Ez nem nagyon akar összejönni.
  1. #include<18f25k20.h>
  2. #include<string.h>
  3.  
  4. #fuses nowdt,intrc_io,put,noprotect,nobrownout
  5. #use delay(clock=16Mhz)
  6. #use rs232(baud=9600, xmit=PIN_C6,rcv=PIN_C7,bits=8,parity=N,stop=1)
  7.  
  8. char szoveg[350];
  9. boolean a=false;
  10.  
  11. #int_rda
  12. void soros_isr(){
  13. a=true;
  14. }
  15.  
  16. void main (){
  17.  
  18. puts("AT+CIPMUX=1\xA\xD");
  19. delay_ms(200);
  20. puts("AT+CIPSERVER=1,1336\xA\xD");
  21. delay_ms(200);
  22. enable_interrupts(int_rda);
  23. enable_interrupts(global);
  24.  
  25. while(true){
  26.  
  27. if(a==true){
  28. gets(szoveg);
  29. delay_ms(10);
  30. a=false;
  31. }
  32.  
  33. if (szoveg[17]=='1'){
  34. output_high(pin_b0);
  35. }
  36. }
  37. }
A hozzászólás módosítva: Ápr 26, 2015
(#) foxi63 válasza Dempsey hozzászólására (») Ápr 26, 2015 /
 
Szia!
A tömb a 0.elemmel kezdődik, tehát a 17. elem: szoveg[16]; Egyébként meg működnie kell!
(#) Dempsey válasza foxi63 hozzászólására (») Ápr 26, 2015 /
 
Holnap kipróbálom köszi!
(#) icserny válasza Dempsey hozzászólására (») Ápr 27, 2015 /
 
Az AT parancsok kiküldésénél fordított sorrendben adtad meg a zárókaraktereket:
A "hivatalos" sorrend: 1. kocsi-vissza (Ctrl-M) 2. soremelés (Ctrl-J), érdemes ezt a sorrendet használni, akkor is, ha most ebből nincs probléma!
(#) Dempsey válasza icserny hozzászólására (») Ápr 27, 2015 /
 
Köszi az infót be fogom tartani a sorrendet ezentúl.
(#) Lamprologus hozzászólása Máj 3, 2015 /
 
Egy strukturált tömböt próbáltam létrehozni ... (Bocs ha nem jól mondom!)
Amikor a tömb elemszáma 18 akkor fordításkor azt írja hogy RAM 62%, ha 20 ra állítom az elemszámot hibaüzenetet kapok, kevés a RAM. ( próbaképp csökkentettem 16-ra, pár százalékkal csökkent csak a RAM foglaltság)
16F887-es PIC
Átléptem valami "bűvös határt"? Vagy mi okozza ezt?


  1. struct pr_adat_record
  2.                 {
  3.                 unsigned int ora,perc,napok,kimenet, uzemmod;
  4.                 };
  5.                
  6. struct pr_adat_record pr_adatok_st[18];
(#) Hp41C válasza Lamprologus hozzászólására (») Máj 3, 2015 / 1
 
Idézet:
„unsigned int ora,perc,napok,kimenet, uzemmod;”
10 byte -ot foglal.
A 16F887 -ben egy lapon (page) a 0x20 .. 0x6F ill. 0xA0 .. 0xEF tartomány használható fel szabadon: 0x70 - 0x20 = 0x50 = 80. Ha a választott C model nem kezeli a lapokon átnyúló struktúrát, a struktúra maximális mérete 80 byte lehet.
Az ora, perc miért 16 bites?
(#) Lamprologus válasza Hp41C hozzászólására (») Máj 3, 2015 /
 
Hát, ha nem tévedek akkor az unsigned int az csak 8 bite, legalábbis én idáig így tudtam...
CCS-C Watch ablakban is azt irja hogy size: 8 bits.

De még így is több mint 80 byte ami még működik... 5*18=90 ... azt hiszem még az 5*19=95-öt is elfogadta ...

Most, hogy belenéztem az adatlapba, és tudtam mit kell keresni meg is találtam! Általános célú regiszter bank0 96 bytes, bank1 80 bytes, bank2,3 16+80bytes.

Na akkor már csak az a kérdésem hogyan lehet megoldani, hogy kezelje a lapokon átnyúló struktúrát? Másik C nyelv választása? Másik PIC család választása?
(#) Hp41C válasza Lamprologus hozzászólására (») Máj 3, 2015 /
 
Idézet:
„... azt hiszem még az 5*19=95-öt is elfogadta ...”

Ha elfogadta, akkor a közös memória 16 rekeszét (0x70..0x7F) is felhasználta a struktúrához.
(#) Dempsey hozzászólása Máj 5, 2015 /
 
Sziasztok!
Wifi modullal játszadozok és olyan problémába ütköztem hogy ha a prinf-es sorok benne vannak a programba akkor nem megy a szöveg beolvasása. Tehát ha beégetem a kódot akkor inicializálódik a wifi modul, de nem megy a szöveg beolvasása. Ki kell törölnöm a két printf-es sort és újra beégetni hogy ha küldök szöveget akkor működjön. Amúgy kifogástalan a működése de feszültség mentesítés után mindig el kell játszani ezt a dolgot sajnos, hogy jó legyen. Miért tiltódik le a gets ha benne van a két printf-es sor?
  1. #include<18f25k20.h>
  2. #include<string.h>
  3.  
  4. #fuses nowdt,intrc_io,put,noprotect,nobrownout,
  5. #use delay(clock=16Mhz)
  6. #use rs232(baud=9600, xmit=PIN_C6,rcv=PIN_C7,bits=8,parity=N,stop=1)
  7.  
  8. char szoveg[30];
  9.  
  10. void init(void){
  11. printf("AT+CIPMUX=1\xD\xA");
  12. printf("AT+CIPSERVER=1,1336\xD\xA");
  13. }
  14.  
  15. void main (){
  16.  
  17. init();
  18.  
  19. while(true){
  20.  
  21. gets(szoveg);
  22.  
  23. if ((szoveg[10]=='b')&&(szoveg[11]=='e')){
  24. output_high(pin_b0);
  25. }
  26. if ((szoveg[10]=='k')&&(szoveg[11]=='i')){
  27. output_low(pin_b0);
  28. }
  29. }
  30. }
(#) icserny válasza Dempsey hozzászólására (») Máj 5, 2015 /
 
Biztos vagy benne, hogy "nem megy" a beolvasás? Szerintem csak más a szöveg és emiatt elcsúszik a karakterek pozíciója. Pl. van, amikor OK helyett azt írja, hogy No change vagy ilyesmi.

Ha ez egy ESP8266 csodabogár, akkor kösd egy USB-TTL konverterrel a PC-hez, és próbálgasd végig az AT parancsokat! Akkor látod, hogy mire mit válaszol.

Egy UART kapcsolatnál, ami végtelen karakterfolyamnak tekinthető, nem szabad ilyen merev elvárásokat tenni, hogy majd a buffer 10. és 11. pozíciójába érkezik a várt parancs! Én parancsértelmezőnél valami speciális jelet használnék a parancs elejének jelzésére (pl. '#'). De legalább egy sorvége jelet keresnél, s az azt követő két karaktert vizsgáld meg!
(#) Dempsey válasza icserny hozzászólására (») Máj 5, 2015 /
 
Debuggoltam és láttam hogy semmi változás nem történik a stringbe egyetlen karakter sem változik, csak ha kitörlöm a két sort.
(#) Jossz hozzászólása Máj 7, 2015 /
 
Sziasztok, egy kis segítséget, ill. ötletet szeretnék kérni...
Van egy szövegbeviteli függvényem, amelyben egy sztringbe viszek be értékeket. Ez egy karakteres, 12 hosszú sztring, a neve setupstring[12]. No most, ha a függvény meghívása után az ebbe a sztringbe beírt numerikus értéket egyben atoi()-val átalakítom, semmi gond nincs, szépen megcsinálja, a numerikus eredménnyel tudok tovább dolgozni. (minden változóm globális) A gond akkor van, ha úgy akarok numerikus értékhez jutni, hogy a sztringbe egyben beírt numerikus értékből egyes karaktereket akarok kiemelni és azt numerikussá alakítani. Tehát pl. szükségem lenne a setupstring[0]-n levő egy darab számjegy numerikus értékére. Ha ezt akarom átalakítani:
  1. int gyszam_1;
  2.  
  3. gyszam_1=atoi(setupstring[0]);
  4. // de próbáltam így is, miután a teljes beírt numerikus érték int32 méretű:
  5. gyszam_1=atoi32(setupstring[0]);

Az eredmény egy nagy semmi, a konvertált értéket nem is tudom megjelentetni az LCD-n, egy üres karaktert ír ki.
Lenne esetleg valami ötlet, hogy hogyan lehetne ezt úgy csinálni, hogy működjön is?
Előre is köszönöm...
A hozzászólás módosítva: Máj 7, 2015
(#) Bell válasza Jossz hozzászólására (») Máj 7, 2015 /
 
És így?:
  1. gyszam_1=setupstring[0]&0b11001111;
(#) Jossz válasza Bell hozzászólására (») Máj 8, 2015 /
 
Köszönöm, de közben megtaláltam a tuti megoldást, ki is teszteltem, működik rendesen. Közreadom a kódot, hátha valakinek még hasznos lesz:
  1. //------karakter kivágása sztringből------
  2. void s_vagas() {
  3.  
  4.         memcpy(karakter, &setupstring[startpos-1], vhossz);
  5.  
  6.         karakter[vhossz] = '\0'; //Sztring terminátor hozzáadása
  7.  
  8.         szamjegy=atoi(karakter);
  9. }
(#) icserny válasza Jossz hozzászólására (») Máj 8, 2015 /
 
Ha ez egyetlen karakter, akkor nem stringkezelő függvénnyel kell vacakolni, hanem 48-at (a nulla ASCII kódját) le kell vonni belőle.

A string a C-ben úgy néz ki, hogy az "értékes" karakterek után áll egy nulla is...
(#) Bell válasza Jossz hozzászólására (») Máj 8, 2015 /
 
A tuti megoldásokon - mielőtt valóban alkalmazzuk, vagy közzétesszük - mindig érdemes kicsit elgondolkodni.
(#) Jossz válasza Bell hozzászólására (») Máj 8, 2015 /
 
Jó a tanács, köszönöm! Biztos lehetsz benne, hogy eléggé elgondolkodtam rajta, mielőtt alkalmaztam, ill. közzétettem volna...(szokásom)
Egyébként én általános, paraméterezhető megoldást kerestem, amelyet nem csak ebben az egy esetben tudok majd használni, hanem más programjaimban is "könyvtárból". Ez a megoldás olyan, mind a Basic-ban, vagy a Foxpro-ban a MID$ függvény, azaz akármekkora stringből, akármilyen startpozicióból, akármilyen hosszú részt ki tudsz vele vágni, így pl. nálam most egy ciklusból meghívva a függvényt, szépen végig tudtam menni a 8 karaktert tartalmazó forrás stringen és ki tudtam belőle szedni a számomra szükséges karaktereket egyenként vagy éppen kettesével. Azóta természetesen már megírtam általánosan paraméterezhető formában is és bővítettem vele a string.h könyvtáramat.
Amint azt láthatod, hajnal 3 tájban raktam fel a választ, mert úgy gondoltam, hogy hasznos lehet másnak is, de természetesen, akinek nem szimpatikus, nem kötelező használni...
A hozzászólás módosítva: Máj 8, 2015
(#) messer hozzászólása Máj 26, 2015 /
 
Sziasztok!

Picit ismerkednék ccsc-ben uart-al de bele ütköztem egy kis problémába.
  1. #include<16F877.h>
  2. #device adc=10
  3.  
  4. #fuses xt,nowdt,noprotect,noput,nolvp,debug                                                             //Fuses
  5. #use delay(crystal=10000000)
  6. #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
  7. char c,d,e;
  8.  
  9. void main()
  10. {
  11. while(1)
  12. {
  13.  if (kbhit())     //check if a character has been received
  14.          c = getc();     //read character from UART
  15.                
  16.  
  17. printf("1");
  18. output_toggle(PIN_D2);
  19. delay_ms(1000);
  20.  
  21. }
  22. }


A
Idézet:
„printf("1");”
tökéletesen működik pickit2 uart tool-al látom szépen megjelennek a küldött egyesek szépen sorba viszont ha a pickit2 uart tool-al én küldök egy 1-est akkor a
Idézet:
„c = getc();”
sor után c tartalma nem egy hanaem 0x31 lesz. Miért nem kapom meg a küldött értéket?

Mit bénázok?

Segítségeteket előre is köszönöm.
A hozzászólás módosítva: Máj 26, 2015
(#) kissi válasza messer hozzászólására (») Máj 26, 2015 /
 
Szia!

A 0x31 az '1' ASCII kódja, valószínűleg karakterként küldöd el, nem értékként !
(#) messer válasza kissi hozzászólására (») Máj 26, 2015 /
 
Idézet:
„printf("1");”
mikor pic küld pic nek akkor is ez a helyzet nem a printf(""); paranccsal kell küldeni?
(#) Dempsey válasza messer hozzászólására (») Máj 26, 2015 /
 
Küldheted puts('');-el is.
A hozzászólás módosítva: Máj 26, 2015
(#) messer válasza Dempsey hozzászólására (») Máj 26, 2015 /
 
lassan kezd összeállni köszönöm
(#) Dempsey válasza messer hozzászólására (») Máj 26, 2015 /
 
Nincs mit
Következő: »»   108 / 118
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem