Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   233 / 850
(#) andykaaa válasza Tóth László hozzászólására (») Máj 25, 2016 /
 
Nekem volna egy tippem az ékezetes karakterekre, éspedig: ugysem hasznalod ki az egészet ami a lib fájlba van, akkor meg miért ne modositanad azokat es majd a kello helyen hasznalod. Nem "egyetemes" de nekem bevált.
(#) Balázs válasza csabeszq hozzászólására (») Máj 25, 2016 /
 
Idézet:
„A modern szoftverfejlesztésben (java, C#, C++, javascript,...) mi a fenét kezdesz egy hexadecimális számmal? Milyen problémát tudsz vele megoldani?”
Azért én ezzel vitatkoznék. Ha adott szerkezetű bináris állományt kell piszkálni, vagy alacsony szinten nyúlni a fájlrendszerhez, tömöríteni, titkosítani, ellenőrző összeget generálni/vizsgálni, eszközkezelőt írni, hatékonyan FFT-zni, stb... akkor csak kelleni fog a bitzsonglőrködés. Ráadásul hexadecimális számból ránézésre látod a bitmintát, ami mondjuk egy soros kommunikációnál sem hátrány.
(#) kameleon2 válasza csabeszq hozzászólására (») Máj 26, 2016 / 6
 
Tipikus programozói hozáállás. Szomorú vagyok, hogy magukat szakembernek tartják, akik ezt a véleményt osztják. Hardveres szinten a bitekkel is harcolni kell - fillérekért. A programozók zöme sajnos pont ugyanígy gondolkodik a kitartó és alapos munkáról - minek erőlködni?. Ezért tart itt a világ. Nagy lé, kevés munkáért, majd a rendszer megoldja. Majd lesz nagyobb proci, nagyobb memória, nagyobb videokártya... Csak akkor érzi az ember, hogy baj van, amikor meglát mondjuk egy sakkprogramot 16k-ban elfutni. Vagy éppen ingyenes programokkal könnyebben és hatékonyabban dolgozik, mint mások az istenített és agyonreklámozott, fizetős, terjengős szoftverekkel. Én azért kíváncsi vagyok, a programozók a magas fizetésüket vajon ráköltenék-e egy olyan autóra, amin az ő összehányt szoftvereik futnak? Amin az életük azon múlik, hogy egy bit információ időben eljut-e A pontból B pontba? Én ezért maradtam a hardvernél. Az nem csal. Ha valami jó - akkor működik, Ha nem jó - akkor pedig nem. De nem hazudja azt, hogy "dolgozom", miközben csak a digitális bitkolbászok animációja fut megbízhatóan...
(#) Kovidivi válasza csabeszq hozzászólására (») Máj 26, 2016 / 1
 
Szia. Készíts egy LED-mátrix kijelzős órát mondjuk 7x35-ös méretben bitzsonglőrködés nélkül. Vagy akár egy hétszegmeneses kijelzőt hajts meg, amire egy mondjuk 8bites portra van rárakva, a másik port pedig a 8db kijelző közös lábát kapcsolja. Nem csak webszerver, meg HD felbontású érintős kijelző létezik 700MHz-es procival meghajtva.
Egyébként nem is kell tudnod, hol van az int32 vége, elég ha tudod, hogy van neki. Ha nagy számokkal dolgozol, majd leelenőrzöd, belefér-e.
(#) roland9 hozzászólása Máj 26, 2016 /
 
Sziasztok!
Egy olyan kérdésem lenne, hogy hogyan lehet megoldani, hogy a void loop-ban csak 1-er fusson le a parancs?
(#) Balázs válasza roland9 hozzászólására (») Máj 26, 2016 / 1
 
Amit csak egyszer akarsz lefuttatni, azt tedd a setupba. Vagy ha mindenképp a loopban kell lennie, akkor csinálj egy változót, ami jelzi, hogy lefutott-e már az adott kódrészlet:

  1. boolean done=false;
  2.  
  3. void loop(){
  4.         if(!done){
  5.                 done=true;
  6.                 //...
  7.                 //amit ide írsz, az csak egyszer fut le
  8.                 //...
  9.         }
  10.         //...
  11.         //amit ide írsz, az végtelenszer lefut
  12.         //...
  13. }
(#) csabeszq válasza kameleon2 hozzászólására (») Máj 26, 2016 /
 
Én is használok hexadecimális számokat, de nem azért mert kell, hanem mert ilyen közegben szocializálódtam. A 0xDEADBEEF helyett lehetne 102030405-öt is használni, kb. ez az, amire a hexadecimális számokat használod. Az, hogy látod, hogy a 0x41 a nagy A betű egy hex viewerrel, semmit sem jelent. A mai hex viewereket decimálisba is át lehet kapcsolni és akkor 65-öt fogsz látni.

A programozás stílusa is megváltozott. Ma ilyen kódot a főnököm nem engedne át:

  1. #define FLAG_VALAMI1 0x01
  2. #define FLAG_VALAMI2 0x02
  3. #define FLAG_VALAMI3 0x04
  4. #define FLAG_VALAMI4 0x08
  5. #define FLAG_VALAMI5 0x10


Ez a 80-as évek modellje, simán átiratná velem a következő formába:

  1. #define FLAG_VALAMI1 ( 1 << 0 )
  2. #define FLAG_VALAMI2 ( 1 << 1 )
  3. #define FLAG_VALAMI3 ( 1 << 2 )
  4. #define FLAG_VALAMI4 ( 1 << 3 )
  5. #define FLAG_VALAMI5 ( 1 << 4 )


Arról is beszélhetünk, hogy az 1 GB, az hány byte ma és tegnap mennyi volt. A kiló 1000-re változott idő közben. Használják a hexadecimális aritmetikát ma is a programozók, de nem azért, mert kell, hanem mert ezt szokták meg. Egyre több kódban látom, hogy 1000 byte-os puffert foglalnak le 1024 helyett. A hexadecimális számrendszer kivesző félben van.
A hozzászólás módosítva: Máj 26, 2016
(#) csabeszq válasza Kovidivi hozzászólására (») Máj 26, 2016 /
 
Ráhibáztál, mert pont írtam ilyet (csatolva). A kód nem túl szép, nem kozmetikáztam, csatoltam.

A karakterek BMP-ben vannak tárolva (lcd_3x6.bmp, lcd_5x7.bmp), amiből egy perl script generálja le a kódot.

Az egész hexadecimális baromkodást megkerültem a painttel. Nem azért, mert utálom a hexadecimális számokat, hanem mert nem óhajtottam 200 karaktert hexában lekódolni. Csinálja, akinek három anyja van.

A PERL kódom kimenetként hexadecimális számokat generál, de mint mondtam azért, mert ilyen közegben nőttem fel. Akár decimálisat is alkothatott volna, mert a jelkészlet BMP-ben van tárolva.
A hozzászólás módosítva: Máj 26, 2016

charset.zip
    
(#) rolandgw válasza csabeszq hozzászólására (») Máj 26, 2016 / 1
 
A matematika alapjait is felesleges tanítani, meghívod a számológépet és kész
(#) icserny válasza csabeszq hozzászólására (») Máj 26, 2016 / 4
 
Butaságokat nem kellene nyilvánosan terjeszteni!
Amíg a processzorok kettes számrendszert használnak, addig nagyon is van értelme a kettő hatványai szerinti számrendszereknek: bináris, oktális, hexadecimális. Ugyan tízes számrendszerben is megadhatod a konstansokat, de az áttekinthetetlen, mivel "összekeveri" a bináris helyiértékeket.

A modern szoftverfejlesztésben a sokmagos, sokgigahertzes, retina felbontású grafikus rendszerekben is szükség van az AND, OR, XOR és NOT műveletekre, s a legkönnyebben bináris vagy hexadecimális számrendszerben felírható/megadható maszkokra.

Idézet:
„Elmúlt az a kor, hogy tudni kellett, hogy mennyi az int felső határa.”
Na, persze! Utána meg lesünk, mint Laci a moziban, hogy vajon miért omlott össze a program - mert nem vesszük észre, hogy túlcsordulás történt.

Idézet:
„A mikrovezérlők szépen lassan térnek át 32 bites processzorokra, beépített ROM függvényekkel (ESP8266, Raspberry Pi).”
A Raspberry Pi nem mikrovezérlő, hanem alkalmazásprocesszor, de ebbe most ne menjünk bele. A mikrovezérlők beépített ROM függvényeiről beszéljünk inkább: azt ki fogja megírni, ha mindenki ilyen szent tudatlanságban akar felnőni? Vagy a Java, C/C++, C# fordítókat ki fogja elkészíteni, ellenőrizni, karbantartani (mert hibátlan fordítót még nem látott a világ)?

Ez egy olyan fórum, ahová azok jönnek, akik tanulni és tudni szeretnének. Tartsuk ezt tiszteletben!
A hozzászólás módosítva: Máj 26, 2016
(#) Tóth László válasza andykaaa hozzászólására (») Máj 26, 2016 /
 
köszi, erre gondoltam én is, igazad lehet
(#) csabeszq válasza icserny hozzászólására (») Máj 26, 2016 /
 
Nem mondtam, hogy megszűnt a kettes számrendszer.

Ha előkapod az AVR példaprogramokat, a következőt látod:
  1. ADCSRA |= _BV(ADSC);


Értelemszerűen ha egy kolléga azt írná, hogy
  1. 0x7A |= 0x40;

visszadobnám a kódot, hogy ezen még agyaljon egy kicsit.

Elmúlt az a világ, hogy
  1. LDA #$41;
  2. JSR $FFD2;
  3. LDA #$0D;
  4. JSR $FFD2;
  5. RTS


Ez C64 kód, annak idején ez így volt normális. Mindenki tudta, hogy a $FFD2 az kiír egy karaktert a képernyőre. Ez a 80-as évek, értelemszerűen nem adhattál kilóméteres neveket a változóidnak, mert max 8 karakter hosszú neveid lehettek, meg a 64k igencsak kevés volt szövegszerkesztésre is. Ráadásul egyszerre egy fájlt tarthattál a memóriában és nem volt alkönyvtár rendszer sem. Ennek a kornak vége. Ezt jobb tudomásulvenni. Megszűntek azok az okok, amik a fentiekhez hasonló kódot eredményeztek.
A hozzászólás módosítva: Máj 26, 2016
(#) roland9 válasza Balázs hozzászólására (») Máj 26, 2016 /
 
köszi a segítséget!
(#) bunny hozzászólása Máj 26, 2016 /
 
Én nem azt mondtam, hogy a modern programozási nyelvekhez szükség van a binális és hexa számok ismeretére (pedig de), hanem, hogy ez egy olyan alap amin alapul az egész digitális kóceráj. Ezt nem tanítani, nem ismerni olyan, mintha a péknek nem tanítanád meg, hogy liszt-élesztő-só, mert úgyis ott van az előre bekever cucc, adj hozzá vizet, csók. Vagy az autószerelőnek nem tanítod meg, hogy az ottómotor hogy működik. Nem egy tanávet kell rászánni, de könyörgöm, az hogy valaki nem is tud arról, hogy ilyesmi létezik az azért nagyon-nagyon gáz. Nem rá nézve, az oktatási rendszerre nézve. Minek tanítani az összeadást, a szorzótáblát ha ott a számológép? Minek tanítani BÁRMIT, ott az internet, guglizd ki!?

És ahogy én is meg más is megemlítette, egy csomó dolgot szimplán nem lehet felfogni enélkül. Csak bemagolni, ami nem marad meg többnyire, hiszen nem érted meg csak visszamondod mint egy papagáj.

Alapok nélkül nem megy, illetve megy, ezért vannak olyan "szakemberek" a piacon, amilyenek. És aztán hívják az olyan régi motoros hülyéket mint én, hogy csináljon már valamit, amikor a rendszer megáll mert optimalizálatlan órmótlan kész modulokból paraméterezéssel összetákolt szemét alá már nem tudnak elég erős vasat rakni. Most is épp ilyen projecten dolgozom, és bizony két nagyságrendű gyorsulásokat érek el némi optimalizálás után.

Itt van a saját példám, én programozó vagyok, a mikro elektronikához totál fű. Ezért is kezdtem MC-vel, mert itt a logikát programozhatom, nem kell tranzisztozokkal, buta IC-kkel, stb felépíteni a vezérlést. Ez egy tök jó átmenet a kockaságból az elektromos jeromos irányába. De bizony nagyon érzem, hogy hiányzik az a sok átbliccelt fizika óra, és bizony most nagyon hálás lennék egy jó fizikaszakkörért, ahol elmagyaráznák szépen szájbarágva az elektronika alapjait. Mert persze lehet hackelni ahogy most teszem, itt egy wifi modul, ott egy led kijelző, letöltöm a lib-et rákötöm a példaprogramban jelölt lábakra és imátkozom, hogy működjön. De ha már 3.3V-os a rendszer és 5V az arduino, hát bizony nyomoznom kellett, hogy lesz ebből az. És nem értem minek köt be két diódát egymás mögé a tápáramkörbe. Mert hiányoznak az alapok. Mert az analóg elektronika számomra irreális, mert nekem a fekete az #000 a fehér pedig #FFF és nem világosszürke meg sötétszürke valahol a kettő között alkatrésztől függően.
A hozzászólás módosítva: Máj 26, 2016
(#) Tóth László válasza snapscan hozzászólására (») Máj 26, 2016 /
 
elakadtam, drawchar rutin nem kezeli az ékezetes karaktareket, /egyenlőre az Á és É betű/ vagy valamit elronthattam
(#) csabeszq válasza bunny hozzászólására (») Máj 26, 2016 /
 
Megértem a nézetedet, valóban vannak helyek, ahol szükség lehet még hexadecimális számokra.

Ugyanakkor mindig fel kell tenned a kérdést, hogy miért használsz hexadecimális számot?
Ha nincs rá megfelelő magyarázat, akkor ne használd.

A színpéldádat kivesézem: #0FF az remélhetőleg a sárga szín (vagy nem).
- Hány embernek jut a #0FF-ről eszébe, hogy sárgáról beszélünk?

Sajnos azt kell mondanom, hogy ebben az esetben félrevezető a jelölés, mert 0xF00 esetén az olvasók 33%-ban piros, zöld, vagy kék színekre fognak tippelni. A 0xFF00-ról ne is beszéljünk ez zöld, vagy alfa csatorna van beállítva, vagy mennyi az annyi? Elolvasod a kódot és a leghalványabb elképzelésed sem lesz arról, hogy mit jelent.

Manapság az érthető kód elsődleges lett, mert többen dolgoznak egy feladaton.

  1. #define CREATE_RGB(r,g,b) ((uint16_t)r << 8) | ((uint16_t)g <<4 ) | b )
  2. #define COLOR_YELLOW CREATE_RGB(0, 15, 15)
  3.  
  4. uint16_t color = COLOR_YELLOW;


A fenti kód pontosan a 0x0FF-re fog lefordulni, azzal a különbséggel, hogy háttér tudás nélkül is mindenki számára egyértelmű, hogy sárga színről beszélünk.

Ebben az esetben mindenképpen kijelenthető, hogy a hexadecimális szám rontja a kód olvashatóságát, félrevezető és többlet nem ad, hiszen a makró is ugyanarra az értékre fordul.

Akkor miért használod?
A hozzászólás módosítva: Máj 26, 2016
(#) szeg76 válasza Tóth László hozzászólására (») Máj 26, 2016 /
 
A szövegszerkesztőd két bájton tárolja az ékezetes betűket.
(#) Tóth László válasza szeg76 hozzászólására (») Máj 26, 2016 /
 
-ha lehet valami példával, ha kérhetem kicsit bővebben, bajban vagyok még ezekkel a bájtokkal
(#) mikrokapcsolo hozzászólása Máj 26, 2016 /
 
Sziasztok! Egy kicsit elakadtam egy program módosítása közben.
Van egy viszonylag komplikált program, ami ha indul az arduino, betölt, és fut. Ez eddig oké, ezt a netről találtam. Nekiálltam kiegészíteni egy I2C-s lcd-vel, és pár gommbal, hogy egy pár értéket tudjak módosítani, mielőt azokat betölti a program (Pl. Eth shield ip címe, egy-két I/O lábszámának megváltoztatása, stb) Eddig szinte minden meg van, még egy dolgot szeretnék változtatni, de itt egy kicsit elakadtam. Tehát a lényeg:
Van ez a rész:
  1. node->swout      [0] = 0x00;
  2. node->swout      [1] = 0x01;
  3. ......

Itt a hexa értékeket szeretném változtatni úgy, hogy megvannak a változóim, a [0], [1] ... értékeknek, viszont ezek int ben vannak, 0-15 között. Hogy tudnám megoldani, azt, hogy a változóm értékét átrakom hexbe?
Hogyha mondjuk "a" = 15 és "b" = 14, akkor azt a [0] = 0x0F és [1] = 0x0E értékekbe, és így tovább írja be?
Előre is köszönöm a segítséget.
(#) szeg76 válasza Tóth László hozzászólására (») Máj 26, 2016 /
 
Röviden és leegyszerűsítve, talán még pontatlanul is:
Az Arduino szövegszerkesztőd nem ASCII-kódolást alkalmaz a szöveged tárolására, hanem UTF-8-at.
Ez az ASCII-karaktereket (angol ABC, számok, alap írásjelek) 1 bájton tárolja, míg a mindenféle európai, cirill, ázsiai, stb karaktereket több bájtos sorozatok segítségével.

A problémát az okozza, hogy a programodban feltételezted, hogy karakterenként fixen 1 bájt hosszúságú ASCII-féleséggel lesz táplálva a drawChar() függvény, de a forráskódot az Arduino szerkesztőjében írtad, UTF-8 szöveggel.
Amit te Á-nak látsz, az valójában a message[] tömbben egy 195-ös és egy őt követő 129-es érték, a programod pedig az ezekhez tartozó 8x16-os képeket rajzolja ki.
A hozzászólás módosítva: Máj 26, 2016
(#) kapu48 válasza mikrokapcsolo hozzászólására (») Máj 26, 2016 /
 
Nyugodtan irhatod decimalis formában is!
  1. node->swout      [0] = 15;
  2. node->swout      [1] = 14;
(#) mikrokapcsolo válasza kapu48 hozzászólására (») Máj 26, 2016 /
 
És ez a programban később nemfog fennakadást okozni? Akkor nyugodtan írhatom .. [0] = a; ként is?
(#) kapu48 válasza mikrokapcsolo hozzászólására (») Máj 26, 2016 /
 
Micsoda az : a ?
Változó vagy karakter?

  1. int a = 15;
  2. node->swout[0] = a;
A hozzászólás módosítva: Máj 26, 2016
(#) mikrokapcsolo válasza kapu48 hozzászólására (») Máj 26, 2016 /
 
Változó. Most példaként írtam a -t, a programban universe0, universe1, ..., van.
(#) csabeszq válasza mikrokapcsolo hozzászólására (») Máj 26, 2016 /
 
Írd át és próbáld ki, I2C LCD-nél nem fogsz vele problémát okozni.

Én is rádugom az Arduino-t és addig bizgetem, amíg el nem indul. Digitális eszköz, nem teszi tönkre, ha a kimeneteket / bemeneteket felcseréled,... Szóval lehet addig játszani, amíg el nem indul minden, nem fog az LCD-d elfüstölni. Volt olyan, hogy az I2C LCD-n fordítva programoztam a pineket és nem szállt szét semmi.

Vannak hardverek (motorok, relék,...), amit hibás szoftverrel szét bírsz vágni, az I2C LCD-t nem tudod.

Az érzékeny hardvereket fejlesztéskor le kell szedni. Amikor relét programoztam, akkor frekvenciamérővel teszteltem, hogy nincs-e PWM kinn a lábon, mert attól szép zenét játszanak a relék és könnyen hősugárzóvá alakulnak. Az I2C LCD tisztán digitális, tetszőleges baromságot megcsinálhatsz szoftveresen, nem lesz baja.
(#) mikrokapcsolo válasza csabeszq hozzászólására (») Máj 26, 2016 /
 
Ez az információ nem a kijelzőnek fog menni, hanem egy valaki más álltal megírt programrésznek. Ez egy Art-net node, etherneten érkező jeleket alakít DMX (= RS485) jelre. Ez az érték mondja meg, melyik univerzumot (melyik 512 csatornát) adja ki. a fizikális kimenetek a [0], [1], .. hoz vannak rendelve, és azt tudom megmondani, a 15 univerzum közül melyik menjen hova.
(#) mikrokapcsolo válasza kapu48 hozzászólására (») Máj 26, 2016 /
 
Valóban, működik így is. Köszönöm a segítséget!
(#) szeg76 válasza Tóth László hozzászólására (») Máj 26, 2016 /
 
Az előbb belinkelt programod próbáld ki ezekkel a módosításokkal:

-ezt tedd a program elejére, mondjuk a message[] közelébe:
char tmpstr[64];

- ez a függvény dolgozza át az UTF-8 kódolású szöveget ASCII + egy bájtos saját karakterkódok keverékére
  1. /************************************************************************************/
  2.  
  3. void  Ekezet(char *str_be, char *str_ki)
  4. {
  5.   byte  i=0, j=0;
  6.   while( str_be[i]!=0 )
  7.     {
  8.     if(str_be[i]>31 && str_be[i]<127 )    // ASCII kódok
  9.     {
  10.       str_ki[j]=str_be[i];              // mehetnek változatlanul
  11.       i++;j++;
  12.       continue;
  13.     }  
  14.      
  15.     if( str_be[i]==(char)0xC3  )        //  UTF-8 kódok
  16.     {
  17.       i++;                              // következő byte
  18.       switch((byte)str_be[i])
  19.       {
  20.         case 0x81: str_ki[j]=0x80; break;  //Á, 128
  21.         case 0xA1: str_ki[j]=0x81; break;  //á, 129
  22.         case 0x89: str_ki[j]=0x82; break;  //É, 130
  23.         case 0xA9: str_ki[j]=0x83; break;  //é
  24.         case 0x8D: str_ki[j]=0x84; break;  //Í
  25.         case 0xAD: str_ki[j]=0x85; break;  //í
  26.         case 0x93: str_ki[j]=0x86; break;  //Ó
  27.         case 0xB3: str_ki[j]=0x87; break;  //ó
  28.         case 0x96: str_ki[j]=0x88; break;  //Ö
  29.         case 0xB6: str_ki[j]=0x89; break;  //ö
  30.         case 0x9A: str_ki[j]=0x8C; break;  //Ú
  31.         case 0xBA: str_ki[j]=0x8D; break;  //ú
  32.         case 0x9C: str_ki[j]=0x8E; break;  //Ü
  33.         case 0xBC: str_ki[j]=0x8F; break;  //ü
  34.       } // switch
  35.       i++;j++;
  36.       continue;
  37.     }  // if str
  38.      
  39.     if( str_be[i]==(char)0xC5  )
  40.     {
  41.       i++;
  42.       switch((byte)str_be[i])
  43.       {
  44.         case 0x90: str_ki[j]=0x8A; break;  //Ő
  45.         case 0x91: str_ki[j]=0x8B; break;  //ő
  46.         case 0xB0: str_ki[j]=0x90; break;  //Ű
  47.         case 0xB1: str_ki[j]=0x91; break;  //ű
  48.       } // switch
  49.       i++;j++;
  50.       continue;
  51.     }  // if str
  52.      
  53.     i++;        
  54.     }  // while
  55.   str_ki[j]=0;    
  56. }
  57. /************************************************************************************/


- meghívni a setup()-ban érdemes, így:
  1. Ekezet("árvíztűrő tükörfúrógép? ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP! 123!@#+-=,./", tmpstr);

vagy így:
  1. Ekezet( message, tmpstr);


- a loop()-ban ezt
  1. drawChar(56,16,message[count%(sizeof(message)-1)],0,false);

cseréld ki erre:
  1. drawChar(56,16,tmpstr[count%(sizeof(tmpstr)-1)],0,false);


- az Ekezet() függvény feltételezi, hogy a font8x16_basic[] tömb ékezetes karakterképei a 128-as helyen kezdődnek és egymás után ebben a sorrendben vannak:
Á á É é Í í Ó ó Ö ö Ő ő Ú ú Ü ü Ű ű
(#) Tóth László válasza szeg76 hozzászólására (») Máj 27, 2016 /
 
Üdv. így ismeretlenül is köszönöm a munkádat, program működik, még én mint laikus is boldogultam vele, még egyszer, köszönöm
(#) Tóth László válasza szeg76 hozzászólására (») Máj 27, 2016 /
 
program működik, de a lefutó szöveg ismétlésekor a lefutó és kezdő szövegsor közötti nem kitöltött karaktereket a program O karakterrel tölti ki, nem lehetne ezt törölni
köszönöm
Következő: »»   233 / 850
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