Fórum témák

» Több friss téma
Fórum » Fordulatszámmérő
 
Témaindító: source2, idő: Júl 7, 2005
Témakörök:
Lapozás: OK   22 / 39
(#) Bonca válasza hepi02 hozzászólására (») Márc 5, 2012 /
 
Én a MikroC-t használom. Abban fordítottam le ezt a programot. Proteus-ban szimuláltam és nagyon remekül működött. Azért is írtam ide a kódot, mert tudom, hogy működik.

Bonca
(#) Bonca válasza accaboj hozzászólására (») Márc 5, 2012 /
 
Úgy emlékszem, hogy nálad csak az LCD-t vezérlő lábakat kellett volna átkonfigurálni a forrásban, mert a kész PCB-hez kellett a program. Gondoltam, ha már érdeklődsz a dolog iránt, ezt simán el tudod végezni.

Bonca
(#) hepi02 válasza Bonca hozzászólására (») Márc 5, 2012 /
 
Na abban nekem is lefordul. Ehhez viszont kellene egy kapcsolási rajz. Van ötletem, hogyan kellene kötni, de egyszerűbb, ha elküldöd azt is.

Köszi,
Ádám.
(#) Bonca válasza hepi02 hozzászólására (») Márc 5, 2012 /
 
A rajzot nem tartottam meg, de a kódból visszafejtve a kapcsolási rajz így néz ki:
- a PIC-LCD közötti kapcsolatot az "Lcd pinout settings" részből ki lehet olvasni;
- az LCD D3...D0, VSS és R/W lábai a GND-re mennek;
- a PIC RB0/INT lábára mennek a külső impulzusok;
- külső felhúzó ellenállás nem kell;
- külső oszcillátor nem kell;
- az MCLR lábra kell egy felhúzó ellenállás.

Talán accaboj fórumtársunknak még megvan a rajz.

Bonca
(#) accaboj válasza Bonca hozzászólására (») Márc 5, 2012 /
 
Ez így van, érdekel, csak mivel nem tudok programozni, ezért nincs is befejezve. Nem tudnád átírni? Egyébként nincs befejezve a program mert nem a fordulatot írja ki.

Megvan a kapcsolás, felteszem.
(#) Bonca válasza accaboj hozzászólására (») Márc 5, 2012 /
 
Igazából innen már nem is kell tudni programozni. A két felfutó (vagy lefutó) él között eltelt Timer0 értékből ki lehet számolni az eltelt időt, abból pedig a frekvenciát... akarom mondani a fordulatszámot
A kommentben leírtam, hogyan lehet ezt kiszámolni.

Bonca
(#) accaboj válasza Bonca hozzászólására (») Márc 5, 2012 /
 
Megnéztem, és nekem annó más programot küldtél.

16f84a.c
    
(#) Bonca válasza accaboj hozzászólására (») Márc 5, 2012 /
 
Ez az! Ezt akartam kérdezni. Amit küldtem, az még valahol a levelezésünk felénél volt. A legvégén eljutottunk oda, hogy mindent úgy ír ki, ahogy kell, csak az LCD lábak sorrendjét kellet megváltoztatni. Ez volt az, amit szerettem volna tőled látni.
Holnap feltúrom a másik gépemet, remélem, megtalálom. A végleges változat periódusidőt és frekvenciát is számol és kijelez ezen az elven.

Bonca
(#) accaboj válasza Bonca hozzászólására (») Márc 5, 2012 /
 
A végleges verzió nekem nincs meg, csak az amit feltettem. Kértelek hogy ird meg, de a beszélgetés valahogy félbe maradt, szóval nem jutottunk el a működő verzióig.
(#) Bonca válasza accaboj hozzászólására (») Márc 6, 2012 /
 
Egy 18F2520-ra írtam meg végül, szándékosan nem arra a mikrovezérlőre, amire neked szükséged volt. Őszintén szólva nem láttam akaratot, és nem akartam helyetted megcsinálni a tervedet. A 16F84A-ra ez alapján át lehet írni.
Itt van 3 kép alacsony fordulatszámról, magas fordulatszámról és alapjáratról. 300 f/p alatt csak ----- jelet ír ki a kijelzőre. A fordulatszámon kívül kiírja még a Timer0 értékét két impulzus között. Értelemszerűen minél nagyobb a fordulatszám, annál kevesebb értékkel telik meg a Timer0.


  1. /*******************************************************************************
  2.   18F2520
  3. *******************************************************************************/
  4.  
  5. // Lcd pinout settings (Global variables)
  6. sbit LCD_RS at RC0_bit;
  7. sbit LCD_EN at RC1_bit;
  8. sbit LCD_D4 at RC2_bit;
  9. sbit LCD_D5 at RC3_bit;
  10. sbit LCD_D6 at RC4_bit;
  11. sbit LCD_D7 at RC5_bit;
  12. // Pin direction
  13. sbit LCD_RS_Direction at TRISC0_bit;
  14. sbit LCD_EN_Direction at TRISC1_bit;
  15. sbit LCD_D4_Direction at TRISC2_bit;
  16. sbit LCD_D5_Direction at TRISC3_bit;
  17. sbit LCD_D6_Direction at TRISC4_bit;
  18. sbit LCD_D7_Direction at TRISC5_bit;
  19.  
  20. unsigned short int falling_edge = 0;
  21. unsigned short int TMR0H_value, TMR0L_value;
  22. unsigned int TMR0_value;
  23. char TMR0_value_to_LCD[7];
  24. unsigned int rev;
  25. char rev_to_LCD[7];
  26.  
  27. void interrupt() {
  28.     if(INTCON.INT0IF) {
  29.         falling_edge++;
  30.         if(falling_edge == 1) {
  31.             TMR0H = TMR0L = 0;
  32.         }
  33.         if(falling_edge == 2) {
  34.             TMR0H_value = TMR0H;
  35.             TMR0L_value = TMR0L;
  36.             TMR0_value = (TMR0H << 8) + TMR0L; // két nyolcbites változó összefűzése 16 bitessé
  37.             rev = 234375 / TMR0_value;         // (1000 * 1000) / (256 * 4 * TMR0_value)
  38.             TMR0H = TMR0L = 0;
  39.             falling_edge = 0;
  40.         }
  41.         INTCON.INT0IF = 0;
  42.     }
  43. }
  44.  
  45. void main() {
  46.     OSCCON = 0x62;
  47.     ADCON1 = 0x0F;
  48.     CMCON = 0x07;
  49.     RCON.IPEN = 0;              // pdf 104.
  50.     INTCON = 0b11110000;        // pdf 95.
  51.     INTCON2.INTEDG0 = 0;        // falling edge, pdf 96.
  52. //    INTCON2.TMR0IP = 0;         // low interrupt priority
  53.     T0CON = 0b10000111;         // 1:256, pdf 125.
  54.     TMR0H = TMR0L = 0;
  55.     TRISB = 0b00000001;
  56.     LATB = 0;
  57.     TRISC = 0;
  58.     LATC = 0;
  59.  
  60.     Lcd_Init();
  61.     delay_ms(100);
  62.     Lcd_Cmd(_LCD_CURSOR_OFF);
  63.  
  64.     while(1) {
  65.         if(rev <= 300) {
  66.             Lcd_Out(1, 1, "-----");
  67.             Lcd_Out_Cp(" RPM");
  68.             Lcd_Out(2, 1, "-----");
  69.             Lcd_Out_Cp(" TMR0");
  70.         }
  71.         else {
  72.             WordToStr(rev, rev_to_LCD);
  73.             Lcd_Out(1, 1, rev_to_LCD);
  74.             Lcd_Out_Cp(" RPM");
  75.  
  76.             WordToStr(TMR0_value, TMR0_value_to_LCD);   // IntToStr előjeles 2 bájt, WordToStr előjel nélküli 2 bájt
  77.             Lcd_Out(2, 1, TMR0_value_to_LCD);
  78.             Lcd_Out_Cp(" TMR0");
  79.         }
  80.         delay_ms(10);
  81.     }
  82. }


Bonca
(#) Bonca hozzászólása Márc 6, 2012 /
 
Teszek ide még képeket, amelyeken látszik, hogy a jelgenerátor frekvenciája*60 adja ki a fordulatszámot.
Annyi "hiba" van a kódban, hogy amíg a Timer0 értékével babrálok, az is időbe telik, és ezt az ofszetet nem adom hozzá a pontos számításokhoz. Innen jön az eltérés a jelgenerátor és a kijelzett fordulatszám között.

Bonca
(#) Bonca hozzászólása Márc 6, 2012 /
 
A 234375-ös konstans úgy jött ki, hogy a Timer0 értéke 256us-onként nő eggyel (4MHz-es órajel negyede jut a Timer0-ra 256-os osztóval). A fordulatszám a frekvencia 60-szorosa. 60/0,000.256=234375.

Bonca
(#) hepi02 válasza Bonca hozzászólására (») Márc 6, 2012 /
 
Na, ami forrást elsőnek írtad sikerült működésre bírnom egy 16f628án. A titok nyitja a while törzsének a kikommentezése illetve egy kis delay a program elején, hogy a pic csak a kijelző után induljon. Most megpróbálkozom a legutóbb adott forrásodat belegyúrni.

Tegnap este kicsit elmerültem az LCD működésében és azon kaptam magamat, hogy 8 ellenállással és 8 vezetékkel írogatok a kijelzőre de legalább egészen értem már.

Köszönöm az eddigieket.
Ádám.
(#) Bonca válasza hepi02 hozzászólására (») Márc 7, 2012 /
 
Ne ezt a kitartást értékelem, ilyenkor szívesen segítek! Ami kapcsolási rajzokat ide feltöltöttem, pont ugyanúgy vannak nekem megépítve, és hibátlanul működnek.
A programoknak igazából az elvén van a hangsúly, a különféle regiszter nevek mikrovezérlőnként nyilván eltérhetnek. De a program működésének az elve ugyanaz. Ezen a problémán csak az adatlap ide vonatkozó részének elolvasása jelenti, és a Microchip véleményen szerint jól áttekinthető adatlapokat ír.

Bonca
(#) Bonca válasza Bonca hozzászólására (») Márc 7, 2012 /
 
jelenti = segít
(#) hepi02 válasza Bonca hozzászólására (») Márc 7, 2012 /
 
Igen, tegnap feltűnt, hogy van némi eltérés a két mikrocsip között. Bankok-timerek-regiszterek-lábak, stb... így inkább megpróbálom előbb felfogni, hogy mit is csinál a kód, aztán megpróbálom 16f628-ra átírni. Azt halkan megjegyzem, hogy még csak most kezdtem el "pikkelni", az eddigi legkomolyabb program, amit magamtól megírtam, az a led villogtatás volt különböző lábakon. Viszont a Timereket így is meg úgy is meg kell tanulnom használni, mivel későbbi projektjeimnek nélkülözhetetlen részét képezik. De ez már offtopic
(#) hepi02 válasza Bonca hozzászólására (») Márc 7, 2012 /
 
Egy buta offtopic kérdésem azért csak lenne, ha szabad.

Tehát, az interrupt függvényt nem kell meghívogatni a main függvényen belül, hogy az lefusson? Vagy ez picnél nem így működik?
(#) Bonca válasza hepi02 hozzászólására (») Márc 7, 2012 /
 
Nem kell meghívni. Ha bármilyen regiszterekben beállított megszakítás történik, "belép" a megszakítás rutinba.

Bonca
(#) hepi02 válasza Bonca hozzászólására (») Márc 7, 2012 /
 
Értem már, köszi

Ha valakit érdekel esetleg, időközben találtam egy ilyet is:
Bővebben: Link
Pöc-röff indult.
(#) hepi02 válasza Bonca hozzászólására (») Márc 8, 2012 /
 
Na, alakul mint púpos gyerek a prés alatt. Gyúrtam a két forrásodból egyet és egy PIC16F628A-n működik. Van még mit csiszolni rajta, de már ez is nagy előrelépés. A kódot ha kipofoztam, akkor természetesen megosztom.

Amit még változtatni kell rajta:
Növelni a pontosságán(jelenleg kb 100 fordulat pontos)
Ha nem kap jelet, akkor a fordulatszám legyen 0
Egyéni karakter bevitele("á")

A pontosság egyébként nem biztos, hogy a program hibája, ugyanis egy 555-ös IC-vel hajtom meg és sima mezei passzív alkatrészekkel, ami közelítőleg jó, de közel sem pontos.

Jobb híján majd bedobom az autóba és összehasonlítom az értékét a bent lévővel.

Köszönöm az eddigi segítségedet!
Ádám.
(#) Bonca válasza hepi02 hozzászólására (») Márc 8, 2012 /
 
A pontosságát úgy tudod javítani, hogy megnézed a megszakítás rutin futásidejét, és órajelre visszaszámolva ezzel az értékkel "ofszeteled" a TMR0L és TMR0H nullázását. Így igen pontosan be tudod állítani a két lefutó él közötti időmérést.

Bonca
(#) hepi02 válasza Bonca hozzászólására (») Márc 8, 2012 / 1
 
Jelenleg így néz ki a forrás:
  1. /*******************************************************************************
  2.     16F628A
  3.     A Timer0-t időzítő (és nem számláló) módban kell használni. A külső órajel
  4.     növeli a Timer0 értékét minden fel- vagy lefutó élnél
  5.  
  6.     A gyújtás megszakítója (és a hozzá tartozó elektronika) minden gyújtásnál
  7.     impulzusokat állít elő. INT0/RB0 az 1. lefutó élnél 00-ról indítja a TMR0-t és
  8.     a 2. lefutó élnél kiolvassuk a tartalámát egy változóba. Ez az érték arányos
  9.     a fordulatszámmal
  10.  
  11.     jel az INT lábon   ___    ________    ________    ________    __
  12.                           |  |        |  |        |  |        |  |
  13.                           |  |        |  |        |  |        |  |
  14.                           |__|        |__|        |__|        |__|
  15.     lefuto_el            1.          2.          1.          2.
  16.  
  17.     Érdemes 10-szer ezt megcsinálni és az átlagból kiírni a fordulatszámot
  18.  
  19.     Mivel 0-255 tartományban megy a Timer0, ezért számolni kell azt is, hogy
  20.     hányszor fordul át (megszakítást generál). De lehet előosztót beállítani neki,
  21.     hogy hosszabb időket mérhessünk vele (alacsonyabb fordulatszám)
  22.  
  23.     OPTION_REG <2:0> a Timer0 előosztóját majd be lehet állítani, ha szükséges.
  24.     Így maximum 256x256=65536 impulzusnál fog csak megszakítást generálni
  25.  
  26.     1MHz-es órajelnél (előosztó nélkül) a Timer0 255-tel való feltöltése
  27.     1.000.000 / 4  = 250.000
  28.     másodpercenként ennyiszer növekszik eggyel a Timer0 értéke
  29.     255 / 250.000 = 0,00102 másodperc alatt történik meg
  30.  
  31.     1MHz-es órajelnél, 256-os előosztóval
  32.     1.000.000 / 4 = 250.000
  33.     256 * 256 / 250.000 = 0,262144 másodperc alatt történik meg
  34.    
  35.     4MHz
  36.     4.000KHz
  37.     4.000.000Hz
  38.  
  39.     *******************************************************************************/
  40.  
  41.      // Lcd pinout settings
  42.     sbit LCD_RS at RB2_bit;        //8
  43.     sbit LCD_EN at RB3_bit;        //9
  44.     sbit LCD_D7 at RB7_bit;        //13
  45.     sbit LCD_D6 at RB6_bit;        //12
  46.     sbit LCD_D5 at RB5_bit;        //11
  47.     sbit LCD_D4 at RB4_bit;        //10
  48.  
  49.     // Pin direction
  50.     sbit LCD_RS_Direction at TRISB2_bit;
  51.     sbit LCD_EN_Direction at TRISB3_bit;
  52.     sbit LCD_D7_Direction at TRISB7_bit;
  53.     sbit LCD_D6_Direction at TRISB6_bit;
  54.     sbit LCD_D5_Direction at TRISB5_bit;
  55.     sbit LCD_D4_Direction at TRISB4_bit;
  56.  
  57.     unsigned int tmr0_value = 0;             // a Timer0 aktuális értéke ide lesz eltárolva
  58.     unsigned int tmr0_interrupt_cnt = 0;     // ez mutatja, hányszor fordult át FF-ből 00-ba a Timer0
  59.     unsigned short int lefuto_el = 0;        // a lefutó éleket sorszámozza
  60.     char fps_to_LCD[7];                      // ez megy az LCD-re
  61.     unsigned int rev = 0;                    // fordulatszám
  62.  
  63.     void interrupt(){
  64.         if (INTCON.INTF){                    // ha megjött a lefutó él...
  65.             lefuto_el++;                     // növeli eggyel a változót
  66.             if (lefuto_el ==1){              // és megnézi, hogy az 1. azaz a Timer0-át indító él jött-e
  67.                 TMR0 = 0;                    // Timer0 0-ról indítsa az időzítést (órajel-számlálást)
  68.                 INTCON.INTF = 0;             // és nullázza le a flag-et, hogy máskor is billenhessen megszakításkor
  69.             }
  70.             if (lefuto_el == 2){             // ha eléri a kettőt, akkor megvolt a 2. lefutó él, lehet számolgatni
  71.                 tmr0_value =  tmr0_interrupt_cnt*256 + TMR0;   //számoljuk össze, hogy meddig jutott a Timer0 (átfordulásszor 256 és a Timer0 aktuális értéke)
  72.                 rev = 234375 / tmr0_value;   //A 234375-ös konstans úgy jött ki, hogy a Timer0 értéke 256us-onként nő eggyel (4MHz-es órajel negyede jut a Timer0-ra 256-os osztóval). A fordulatszám a frekvencia 60-szorosa. 60/0,000.256=234375.
  73.                 lefuto_el = 0;               // nullázza a változót
  74.                 tmr0_interrupt_cnt =0;       // és a számláló billenés-számlálóját
  75.                 INTCON.INTF = 0;             // és nullázza le a flag-et, hogy máskor is billenhessen megszakításkor
  76.             }
  77.         }
  78.         if (INTCON.T0IF){                    // ha Timer0 túlcsordul (FF-ből átbillent 00-ba... 255-ből 0-ba)
  79.             tmr0_interrupt_cnt++;            // növeljük eggyel ezt a változót
  80.             INTCON.T0IF = 0;                 // és nullázzuk a flag-et, hogy máskor is billenhessen
  81.         }
  82.     }
  83.  
  84.     void main() {
  85.          delay_ms(50);                        // megvárjuk, míg a kijelző feléled
  86.          OPTION_REG = 0b00010111;
  87.          INTCON.GIE = 1;                      // global interrupt engedélyezése, pdf 10
  88.          INTCON.INTE = 1;                     // külső megszakítás engedélyezés az INT lábon
  89.          INTCON.INTF = 0;                     // ezt a flag-et kell figyelni
  90.          INTCON.T0IE = 1;                     // Timer0 megszakítás engedélyezése
  91.          INTCON.T0IF = 0;                     // Timer0 flag-et is kell majd figyelni
  92.          tmr0_value = 0;
  93.  
  94.          Lcd_Init();                          // az LCD inicializálása
  95.          Lcd_Cmd(_LCD_CLEAR);                 // LCD törlése
  96.          Lcd_Cmd(_LCD_CURSOR_OFF);            // nem kell a villogó kurzor
  97.          Lcd_Out(1, 1, "Fordulatszám:");      // az első sor szövege
  98.  
  99.          while(1){                            // végtelen ciklus
  100.              WordToStr(rev, fps_to_LCD);      // az integer tartalmát sztinggé alakítja, mert a kijelzőnek csak sztringet küldhetünk
  101.              Lcd_Out(2, 0, fps_to_LCD);       // írjuk ki a második sorba az előző sztringünket
  102.              Lcd_Out_Cp(" RPM");              // mértékegység
  103.              delay_ms(500);                   // a kijelző frissítése...1000us = 1s
  104.          }
  105.     }


TMR0H és TMR0L-t nem találtam a doksiban (PIC16F628A)

A megszakítás rutin idejét hogyan lenne célszerű megmérni?

Egyébként jó irányba haladok, vagy csak merő véletlen, hogy kb azt írja ki, amit elvárnék tőle?
(#) Bonca válasza hepi02 hozzászólására (») Márc 9, 2012 /
 
Mivel a 16F628A-nak a Timer0 modulja csak 8 bites, ezért ott nincs TMR0L és TMR0H regiszterpár, csak egyszerűen TMR0. A Timer1 modul viszont tud 16 bites módban menni.

A megszakítás rutin idejét a megépített áramkör debug módjában (ICD), szimulátorban (pl. Proteus) vagy a fejlesztő rendszerrel (MikroC-nél Run > Start Debugger) lehet megmérni. Mondanám még az oszcilloszkópot, de annál biztosan nem tudsz annyira pontosan mérni.

Bonca
(#) rozsaroland hozzászólása Márc 15, 2012 /
 
Sziasztok!

Az után érdeklődnék, hogy van nekem egy robogóm, és szeretnék ráfaragni egy fordulatszámmérőt! Mérő órám van nekem, 12V-os 12000ig számozva! Két vezetéke van! Hogyan tudnék neki valami jeladót csinálni a főtengelyre? valami tippet tudtok adni?
(#) Hogi hozzászólása Márc 28, 2012 /
 
Hellotok!

Segítségetek kellene. Haver vett a Nissan Almera-ba fordulatszámmérős órát, valaki bekötötte neki de alapjáraton valami 300 at mutat de valamikor 400 rpm

Holott 900 nak kéne lenni. Menet közbe szerintem jót mutat de azért megcáfolnám.
Trafóra lett kötve. Úgy van hogy fekete,fehér,kék(vastag),fehér-fekete,fehér kábelek vannak. A kék vastaghoz lett rákötve. Nem tudom jó-e, vagy valami dióda kéne elé vagy nem tudom.
(#) misi93 hozzászólása Márc 29, 2012 /
 
Sziasztok! A minap kész lettem havernak a simójához a fordszámmérővel.(ezzel) a stabilizáláshoz 7805-öt használok. A problémám az volt hogy az utolsó 10 led világított folyamatosan. A hiba az volt hogy az átkötést (jumpert) vezetékdarabbal kötöttem össze és még az ic lábához is hozzáért. ezt kijavítottam + a 22k-s ellenállást kicseréltem 2k2-re mert több máshonnan vett rajzon mindkét ic-n az volt. most a ledsor megy, de az 555-része valamiért nagyon érzékeny, mert ha hozzányúlok alulról akor világít az összes led. Forrasztottam rá a bemenetére vezetéket és ha már a műanyag részét megfogom már valamennyi led világít. Esetleg tudnátok segíteni? Köszönöm.
(#) proli007 válasza misi93 hozzászólására (») Márc 29, 2012 /
 
Hello!
Nem oly nagy csoda, hiszen az 555 bemenetén 10Mohm van. Ekkora bementi ellenállással minden zavart összeszed. Nem tudom valakinek is működi-e korrekt módon ez a kapacitív csatolásos bemenet. Árnyékolt kábel illene hozzá, de én inkább a trafóról ilyen bementi fokozattal próbálkoznék.
üdv! proli007
(#) misi93 válasza proli007 hozzászólására (») Márc 30, 2012 /
 
Köszi! Esetleg egy finom hangoló trimmert be lehetne illszteni valahova? a 7-es lábat nem kell összekötni a 6-ossal? Esetleg a tranyós változata (ez??) miben különbözik a tiédtől? Bocsi a h..lye kérdésekért . Köszönöm a válaszod !
(#) proli007 válasza misi93 hozzászólására (») Márc 31, 2012 /
 
Hello!
-Felesleges bonyolítani (már ha a trimmert az 555-nél gondoltad.) A gyújtásnál a trafó primerén egy 12V-os négyszögjel van, ráülve kb. 400V-os tüskével. Ezt kel jelformálni és ezzel vezérelni a következő fokozatot.
- A tranyós és az IC-s fokozat között funkcionálisan nincs különbség, csak az IC határozottabb jelet ad, és a bementi zavarszűrést is korrektebben lehet kialakítani.
- Az 555 7-es lábát nem kell sehova bekötni, mert itt az 555 egy hiszterézises komparátorként működik.
üdv! proli007
(#) misi93 válasza proli007 hozzászólására (») Márc 31, 2012 /
 
Köszönöm a válaszod. Közben megépítettem és egy 10 cm hosszú vezetéknél nem mutat fals értéket se ha hozzányúlok vagy ilyenek ez a probléma megszűnt. Esetleg mivel tudnám kipróbálni hogy működik-e sajnos jelgenerátorom nincs a simó sincs itt arra gondoltam hogy egy kismotor segítségével "nyomkodnék" egy gombot gyorsan. Ezt is megvalósítottam de mindig maxra felmegy a fordulatszám, szerintem a motor indukciója miatt lehet.
Következő: »»   22 / 39
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