{"id":950,"date":"2016-08-12T19:38:43","date_gmt":"2016-08-12T18:38:43","guid":{"rendered":"http:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/?p=950"},"modified":"2017-01-12T17:58:00","modified_gmt":"2017-01-12T16:58:00","slug":"atmega-rezistivni-touchpad","status":"publish","type":"post","link":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/","title":{"rendered":"ATmega a rezistivn\u00ed touchpad"},"content":{"rendered":"<p style=\"text-align: justify;\"><a href=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/touchpad-366x210.jpg\" rel=\"attachment wp-att-957\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957 size-medium\" src=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/touchpad-366x210.jpg\" alt=\"touchpad\" width=\"366\" height=\"210\" \/><\/a>V \u010dl\u00e1nku <span style=\"color: #0000ff;\"><strong><a style=\"color: #0000ff;\" href=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/2016\/02\/tft-display-ssd1963-atmega162\/\">TFT displej s \u0159adi\u010dem SSD1963<\/a><\/strong><\/span> jsem popsal zp\u016fsob ovl\u00e1d\u00e1n\u00ed TFT displeje procesorem ATmega162. Popsan\u00fd displej m\u00e1 rezistivn\u00ed touchpad a v tomto \u010dl\u00e1nku pop\u00ed\u0161u, jak na displeji nakreslit tla\u010d\u00edtka a s pomoc\u00ed touchpadu d\u00e1t programu informaci o jejich stisku.<\/p>\n<h2 style=\"text-align: justify;\">Nakreslen\u00ed tla\u010d\u00edtka<\/h2>\n<p style=\"text-align: justify;\">Tla\u010d\u00edtko bude barevn\u00fd obd\u00e9ln\u00edk, ve kter\u00e9m m\u016f\u017ee b\u00fdt n\u00e1zev tla\u010d\u00edtka, p\u0159\u00edpadn\u011b n\u011bjak\u00e1 veli\u010dina, kterou je mo\u017en\u00e9 po stisku tla\u010d\u00edtka m\u011bnit rota\u010dn\u00edm kod\u00e9rem.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/2016\/08\/atmega-rezistivni-touchpad\/tlacitko\/\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-958 size-medium\" src=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/tla\u010d\u00edtko-366x104.jpg\" alt=\"tla\u010d\u00edtko\" width=\"366\" height=\"104\" srcset=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/tla\u010d\u00edtko-366x104.jpg 366w, https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/tla\u010d\u00edtko-150x43.jpg 150w, https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/tla\u010d\u00edtko-768x219.jpg 768w, https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/tla\u010d\u00edtko.jpg 789w\" sizes=\"auto, (max-width: 366px) 100vw, 366px\" \/><\/a>Na displeji bude takov\u00fdch tla\u010d\u00edtek n\u011bkolik a je pot\u0159eba alespo\u0148 10x za sekundu p\u0159ekreslovat \u010d\u00edsla, kter\u00e1 jsou v nich. Nejjednodu\u0161\u0161\u00ed by bylo napsat funkci, kter\u00e1 nakresl\u00ed tla\u010d\u00edtko po\u017eadovanou barvou a v n\u011bm nap\u00ed\u0161e \u010d\u00edslo. Tuto funkci potom pou\u0161t\u011bt po\u0159\u00e1d dokola, pro v\u0161echny tla\u010d\u00edtka. Kreslen\u00ed cel\u00e9ho tla\u010d\u00edtka trv\u00e1 dlouho a stisknuto je jenom n\u011bkdy &#8211; tak\u017ee je to ztr\u00e1ta \u010dasu a nav\u00edc, displej p\u0159i opakovan\u00e9m p\u0159ekreslov\u00e1n\u00ed blik\u00e1. Proto jsem se rozhodl naprogramovat dv\u011b funkce. Prvn\u00ed nakresl\u00ed tla\u010d\u00edtko. Proveden\u00ed t\u00e9to funkce trv\u00e1 del\u0161\u00ed dobu a je pou\u017e\u00edv\u00e1na jenom tehdy, kdy\u017e je tla\u010d\u00edtko stisknuto a je nutn\u00e9 zm\u011bnit jeho barvu, nebo n\u00e1pis v tla\u010d\u00edtku.<\/p>\n<pre class=\"\">\/*********************************************************************************\r\n*\r\n* Function Name : Print_Array_Static\r\n* Description\u00a0\u00a0 \u00a0: vytvori pole pro vypis promenne\r\n* nazev vypisovane promenne, cislo vypisovane promenne, oznaceni, barva ramecku\r\n*\r\n*********************************************************************************\/\r\nvoid Print_Array_Static( const char *UnitName1, const char *UnitNumber, const char *UnitValue, const char *UnitValue1,\r\nunsigned int ColFront, unsigned int ColBack, unsigned int ColBox, unsigned int x, unsigned int y )\r\n{\r\n\u00a0\u00a0 \u00a0TFT_ColorBox( x, x + 238, y, y + 66, ColBack );\r\n\u00a0\u00a0 \u00a0TFT_DrawBox( x, y, x + 238, y + 66, ColBox );\r\n\u00a0\u00a0 \u00a0TFT_PrintString( 2, UnitName1, ColFront, ColBack, x + 3, y + 3 );\r\n\u00a0\u00a0 \u00a0TFT_PrintString( 1, UnitNumber, ColFront, ColBack, x + 23, y + 18 );\r\n\u00a0\u00a0 \u00a0TFT_PrintString( 1, UnitName1, ColFront, ColBack, x + 3, y + 44 );\r\n\u00a0\u00a0 \u00a0TFT_PrintString( 0, UnitNumber, ColFront, ColBack, x + 15, y + 49 );\r\n\u00a0\u00a0 \u00a0TFT_PrintString( 2, UnitValue, ColFront, ColBack, x + 150, y + 3 );\r\n\u00a0\u00a0 \u00a0TFT_PrintString( 1, UnitValue, ColFront, ColBack, x + 110, y + 44 );\r\n\u00a0\u00a0 \u00a0TFT_PrintString( 0, UnitValue1, ColFront, ColBack, x + 215, y + 48 );\r\n}<\/pre>\n<p style=\"text-align: justify;\">Druh\u00e1 funkce kresl\u00ed \u010d\u00edsla v tla\u010d\u00edtku. Funkce trv\u00e1 kr\u00e1tkou dobu, tak\u017ee p\u0159i 16MHz je mo\u017en\u00e9 displej z obr\u00e1zku v z\u00e1hlav\u00ed \u010dl\u00e1nku p\u0159ekreslit alespo\u0148 15x za sekundu. P\u0159i pou\u017eit\u00ed ATxmega128 a kmito\u010dtu 32MHz lze p\u0159ekreslovat 20x a je\u0161t\u011b zbyde spousta \u010dasu na dal\u0161\u00ed pr\u00e1ci procesoru.<\/p>\n<pre class=\"\">\/*********************************************************************************\r\n*\r\n* Function Name : Print_Array_Value\r\n* Description\u00a0\u00a0 \u00a0: vypise promenne do pripraveneho pole\r\n* aktualni hodnota promenne, nastavena hodnota promenne, pocet desetinnych mist, hodnota pomocne promenne, pocet desetinnych mist\r\n*\r\n*********************************************************************************\/\r\nvoid Print_Array_Value( unsigned int ValueAktual, unsigned int ValueSetting, unsigned char Decimal,\r\nunsigned int ValueSetting1, unsigned char Decimal1, unsigned int ColFront, unsigned int ColBack, unsigned int x, unsigned int y )\r\n{\r\n\u00a0\u00a0 \u00a0TFT_PrintNumber( 2, ValueAktual,\u00a0\u00a0 5, Decimal,\u00a0 ColGreen, ColBack, x + 33,\u00a0 y + 3\u00a0 );\u00a0\u00a0 \u00a0\/\/ pro Tahoma30x32 je y + 3\r\n\u00a0\u00a0 \u00a0TFT_PrintNumber( 1, ValueSetting,\u00a0 5, Decimal,\u00a0 ColFront, ColBack, x + 38,\u00a0 y + 44 );\r\n\u00a0\u00a0 \u00a0TFT_PrintNumber( 0, ValueSetting1, 5, Decimal1, ColFront, ColBack, x + 150, y + 48 );\r\n}<\/pre>\n<h2>Touchpad ovl\u00e1dan\u00fd obvodem XPT2046<\/h2>\n<p style=\"text-align: justify;\">Z datov\u00e9ho listu obvodu XPT2046 je z\u0159ejm\u00e9, \u017ee po SPI sb\u011brnici je pot\u0159eba poslat osmibitov\u00fd \u0159\u00edd\u00edc\u00ed znak a obvod odpov\u00ed dvan\u00e1ctibitovou hodnotou, kterou nam\u011b\u0159il AD p\u0159evodn\u00edk.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-951 size-full\" title=\"XPT2046\" src=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046.png\" alt=\"XPT2046\" width=\"1255\" height=\"573\" srcset=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046.png 1255w, https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046-150x68.png 150w, https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046-366x167.png 366w, https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046-768x351.png 768w\" sizes=\"auto, (max-width: 1255px) 100vw, 1255px\" \/><\/a>Maxim\u00e1ln\u00ed kmito\u010det komunikace, kterou zvl\u00e1dne XPT2046, je n\u011bkde kolem 2,5MHz. To znamen\u00e1, \u017ee kdy\u017e procesor b\u011b\u017e\u00ed na 16MHz a je pot\u0159eba p\u0159en\u00e9st osm bit\u016f na kmito\u010dtu 2MHz po sb\u011brnici SPI, tak procesor m\u016f\u017ee\u00a064 takt\u016f d\u011blat n\u011bco jin\u00e9ho. ATxmega b\u011b\u017e\u00ed na 32MHz, tak\u017ee to je zbyte\u010dn\u00fdch 128 takt\u016f \u010dek\u00e1n\u00ed na ka\u017ed\u00fd bajt komunikace.<\/p>\n<p style=\"text-align: justify;\">Je celkem jednoduch\u00e9 naj\u00edt na internetu knihovnu funkc\u00ed, kter\u00e1 prost\u0159ednictv\u00edm SPI kan\u00e1lu \u010dte data z AD p\u0159evodn\u00edku obvodu a vrac\u00ed sou\u0159adnice m\u00edsta na displeji, kter\u00e9 je stisknuto. Funkce, kter\u00e1 m\u00e1 vr\u00e1tit sou\u0159adnice stisknut\u00e9ho m\u00edsta, komunikuje s obvodem XPT2046 takto:<\/p>\n<ul>\n<li style=\"text-align: justify;\">ode\u0161le \u0159\u00edd\u00edc\u00ed znak 0xD0 pro p\u0159ipojen\u00ed odporov\u00e9 vrstvy X na nap\u00e1jen\u00ed<\/li>\n<li style=\"text-align: justify;\">p\u0159ijme data z AD p\u0159evodn\u00edku, kter\u00fd je p\u0159ipojen na osu Y<\/li>\n<li style=\"text-align: justify;\">ode\u0161le \u0159\u00edd\u00edc\u00ed znak 0x90 pro p\u0159ipojen\u00ed odporov\u00e9 vrstvy Y na nap\u00e1jen\u00ed<\/li>\n<li style=\"text-align: justify;\">p\u0159ijme data z AD p\u0159evodn\u00edku, kter\u00fd je p\u0159ipojen na osu X<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">V\u0161echny knihovny, kter\u00e9 jsem na\u0161el, \u010dekaj\u00ed na reakci SPI sb\u011brnice n\u011bkolik set takt\u016f procesoru pro ka\u017ed\u00e9 \u010dten\u00ed dat. Dal\u0161\u00ed ztr\u00e1tou \u010dasu je p\u0159ep\u00edn\u00e1n\u00ed mezi osou X a osou Y. Po odesl\u00e1n\u00ed k\u00f3du 0x90 je pot\u0159eba n\u011bkolik \u00b5s po\u010dkat, ne\u017e se ust\u00e1l\u00ed nap\u011bt\u00ed p\u0159ipojen\u00e9 na odporovou vrstvu Y.<\/p>\n<h2 style=\"text-align: justify;\">XPT2046 ovl\u00e1dan\u00fd v p\u0159eru\u0161en\u00ed<\/h2>\n<p style=\"text-align: justify;\">To se mi nel\u00edbilo, proto jsem se rozhodl pou\u017e\u00edt pro komunikaci s XPT2046 syst\u00e9m p\u0159eru\u0161en\u00ed. \u010cinnosti, kter\u00e9 m\u00e1 procesor vykon\u00e1vat pravideln\u011b, n\u011bkolikr\u00e1t za sekundu, je vhodn\u00e9 naprogramovat do funkce, kterou spou\u0161t\u00ed p\u0159eru\u0161en\u00ed \u010dasova\u010de. V m\u00e9m p\u0159\u00edpad\u011b je \u010dasova\u010d nastaven tak, aby program jeho p\u0159eru\u0161en\u00ed byl spou\u0161t\u011bn 1000x za sekundu. Je\u0161t\u011b budu pot\u0159ebovat, aby funkce p\u0159eru\u0161en\u00ed \u010dasova\u010de a p\u0159eru\u0161en\u00ed SPI kan\u00e1lu vykon\u00e1vala poka\u017ed\u00e9 n\u011bco jin\u00e9ho, to bude zobrazovat prom\u011bnn\u00e1 Touch_Counter.<\/p>\n<p style=\"text-align: justify;\">Program p\u0159eru\u0161en\u00ed \u010dasova\u010de:<\/p>\n<pre class=\"\" style=\"text-align: justify;\">ISR( TCC0_OVF_vect )\r\n{\r\n\u00a0\u00a0\u00a0 switch ( Touch_Counter )\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case 0:\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0XPT2046_set_CS;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0 \/\/ pocatek komunikace s XPT2046\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_Counter++;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SPIE_DATA = 0xD0;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ kod pro osu X\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case 1:\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SPIE_DATA = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_Counter++;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 \/\/ mezera po kodu X a 0 pro cteni dat\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case 4:\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SPIE_DATA = 0;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0  \/\/ mezera po kodu Y a 0 pro cteni dat\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_Counter++;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0}\r\n}<\/pre>\n<p style=\"text-align: justify;\">Program p\u0159eru\u0161en\u00ed od SPI kan\u00e1lu:<\/p>\n<pre class=\"\" style=\"text-align: justify;\">ISR( SPIE_INT_vect )\r\n{\r\n\u00a0\u00a0 \u00a0switch ( Touch_Counter )\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case 2:\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_X = SPIE_DATA &lt;&lt; 5;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ cteni dat pro osu X\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SPIE_DATA = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_Counter++;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case 3:\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_X += SPIE_DATA &gt;&gt; 3;\u00a0\u00a0 \u00a0\u00a0\u00a0 \/\/ cteni dat pro osu X\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SPIE_DATA = 0x90;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ kod pro osu Y\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_Counter++;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case 5:\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_Y = SPIE_DATA &lt;&lt; 5;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ cteni dat pro osu Y\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SPIE_DATA = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_Counter++;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case 6:\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_Y += SPIE_DATA &gt;&gt; 3;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ cteni dat pro osu Y\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_Counter = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0XPT2046_clr_CS;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0  \/\/ konec komunikace s XPT2046\r\n\u00a0           break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0}\r\n}<\/pre>\n<p style=\"text-align: justify;\">Obvod XPT2046 dok\u00e1\u017ee na pinu \/PENIRQ generovat impuls v okam\u017eiku, kdy je stisknut touchpad. Tento impuls lze vyu\u017e\u00edt k zavol\u00e1n\u00ed p\u0159eru\u0161en\u00ed v procesoru. To zat\u00edm nebudu pou\u017e\u00edvat, program ovl\u00e1dan\u00fd \u010dasova\u010dem pob\u011b\u017e\u00ed periodicky a v prom\u011bnn\u00e9 Touch_X a Touch_Y budou st\u00e1le aktu\u00e1ln\u00ed \u00fadaje z AD p\u0159evodn\u00edku XPT2046. V dal\u0161\u00ed \u010d\u00e1sti programu vyhodnot\u00edm, zda je stisknut touchpad a vypo\u010d\u00edt\u00e1m pr\u016fm\u011brn\u00e9 hodnoty z osmi m\u011b\u0159en\u00ed. Po\u010d\u00edtadlo m\u011b\u0159en\u00fdch hodnot je prom\u011bnn\u00e1 Touch_Counter1.<\/p>\n<pre class=\"\" style=\"text-align: justify;\">if(( Touch_X &gt; 10 ) &amp;&amp; ( Touch_Y &lt; 4085 ))\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ je dotyk\r\n{\r\n\u00a0\u00a0 \u00a0if( Touch_Counter1 &lt; 8 )\r\n\u00a0\u00a0  {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 Touch_XAdd += Touch_X;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ pricte pro vypocet prumeru\r\n\u00a0\u00a0 \u00a0\u00a0 \u00a0 Touch_YAdd += Touch_Y;\r\n\u00a0 \u00a0\u00a0\u00a0 \u00a0 Touch_Counter1++;\r\n\u00a0\u00a0 \u00a0}\r\n\u00a0 \u00a0 if( Touch_Counter1 == 1 )\r\n\u00a0 \u00a0 {\r\n\u00a0\u00a0 \u00a0\u00a0 \u00a0 Touch_X -= TouchError;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ zjisti, jesti neni moc velky rozdil mezi 1 a druhym vzorkem\r\n\u00a0\u00a0 \u00a0\u00a0 \u00a0 Touch_Y -= TouchError;\r\n\u00a0 \u00a0\u00a0\u00a0 \u00a0 if((( Touch_XAdd - Touch_X ) &gt; ( TouchError * 2 )) || (( Touch_YAdd - Touch_Y ) &gt; ( TouchError * 2 )))\r\n\u00a0\u00a0 \u00a0\u00a0 \u00a0 {\r\n\u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 Touch_Counter1 = 0;\u00a0\u00a0 \u00a0\/\/ je moc velky rozdil mezi prvnim a druhym vzorkem, zacne se znovu\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_XAdd = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_YAdd = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0if( Touch_Counter1 == 8 )\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ je prijato 8 vzorku\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_OutX = ( Touch_XAdd &gt;&gt; 3 ) - TouchError;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ zjisti, jestli neni moc velky rozdil mezi prumerem a poslednim vzorkem\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_OutY = ( Touch_YAdd &gt;&gt; 3 ) - TouchError;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ((( Touch_X - Touch_OutX ) &lt; ( TouchError * 2 )) &amp;&amp; (( Touch_Y - Touch_OutY ) &lt; ( TouchError * 2 )))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_OutX = 480 - (( Touch_XAdd * 480 ) &gt;&gt; 15 );\u00a0\u00a0 \u00a0\/\/ prepocita na souradnice displeje\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Touch_OutY = 272 - (( Touch_YAdd * 272 ) &gt;&gt; 15 );\r\n        }\r\n    }\r\n}<\/pre>\n<p style=\"text-align: justify;\">Pr\u016fm\u011brn\u00e9 hodnoty jsou p\u0159i v\u00fdpo\u010dtu porovn\u00e1v\u00e1ny s druhou a posledn\u00ed nam\u011b\u0159enou hodnotou. Pokud je rozd\u00edl p\u0159\u00edli\u0161 velk\u00fd, znamen\u00e1 to, \u017ee tlak na dotykovou plochu touchpadu je mal\u00fd, nebo \u017ee se dot\u00fdk\u00e1me velkou plochou &#8211; b\u0159\u00ed\u0161kem prstu. V tom p\u0159\u00edpad\u011b je mezi vrstvou X a Y velk\u00fd a prom\u011bnliv\u00fd odpor, kter\u00fd zp\u016fsobuje chybu m\u011b\u0159en\u00ed.<\/p>\n<p style=\"text-align: justify;\">Kdy\u017e je chyba m\u011b\u0159en\u00ed mal\u00e1, jsou nam\u011b\u0159en\u00e9 hodnoty p\u0159epo\u010d\u00edt\u00e1ny na sou\u0159adnice displeje. Pou\u017eit\u00e9 rovnice jsou jednoduch\u00e9, nezohled\u0148uj\u00ed posunut\u00ed, nebo pooto\u010den\u00ed dotykov\u00e9 vrstvy na panelu displeje. To by bylo mo\u017en\u00e9 korigovat s pou\u017eit\u00edm maticov\u00e9ho po\u010dtu, jak je pops\u00e1no nap\u0159. zde. Pro ovl\u00e1d\u00e1n\u00ed tla\u010d\u00edtek to nebude pot\u0159eba, program nemus\u00ed b\u00fdt tak moc p\u0159esn\u00fd.<\/p>\n<p style=\"text-align: justify;\">N\u00e1sleduj\u00edc\u00ed kousek programu vyhodnot\u00ed, kter\u00e9 tla\u010d\u00edtko bylo stisknuto a podle toho nastav\u00ed prom\u011bnnou Setting_Value.<\/p>\n<pre class=\"\" style=\"text-align: justify;\">if(( Touch_OutX &gt;\u00a0 10 ) &amp;&amp; ( Touch_OutX &lt; 230 ) &amp;&amp; ( Touch_OutY &gt;\u00a0 24 ) &amp;&amp; ( Touch_OutY &lt;\u00a0 74 )) \u00a0\u00a0 \u00a0\/\/ podle souradnic nastavi promennou, ktera se meni\r\n{\r\n    Setting_Value = 0x01;\r\n}\r\nif(( Touch_OutX &gt;\u00a0 10 ) &amp;&amp; ( Touch_OutX &lt; 230 ) &amp;&amp; ( Touch_OutY &gt;\u00a0 94 ) &amp;&amp; ( Touch_OutY &lt; 144 ))\r\n{\r\n\u00a0\u00a0 \u00a0Setting_Value = 0x02;\r\n}\r\nif(( Touch_OutX &gt; 250 ) &amp;&amp; ( Touch_OutX &lt; 470 ) &amp;&amp; ( Touch_OutY &gt;\u00a0 24 ) &amp;&amp; ( Touch_OutY &lt;\u00a0 74 ))\r\n{\r\n    Setting_Value = 0x04;\r\n}\r\nif(( Touch_OutX &gt; 250 ) &amp;&amp; ( Touch_OutX &lt; 470 ) &amp;&amp; ( Touch_OutY &gt;\u00a0 94 ) &amp;&amp; ( Touch_OutY &lt; 144 ))\r\n{\r\n\u00a0\u00a0 \u00a0Setting_Value = 0x08;\r\n}<\/pre>\n<p style=\"text-align: justify;\">Na z\u00e1klad\u011b zm\u011bny stavu prom\u011bnn\u00e9 Setting_Value se zm\u011bn\u00ed zabarven\u00ed tla\u010d\u00edtek. Z\u00e1rove\u0148 se podle prom\u011bnn\u00e9 Setting_Value \u0159\u00edd\u00ed chod programu p\u0159eru\u0161en\u00ed, kter\u00e9 je generov\u00e1no rota\u010dn\u00edm kod\u00e9rem. Plochy, kter\u00e9 jsou touchpadem detekov\u00e1ny jako tla\u010d\u00edtka, jsou po obvodu alespo\u0148 o p\u011bt pixel\u016f men\u0161\u00ed, aby nedoch\u00e1zelo k p\u0159ehmat\u016fm.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TFT displej m\u00e1 rezistivn\u00ed touchpad a v tomto \u010dl\u00e1nku pop\u00ed\u0161u, jak na displeji nakreslit tla\u010d\u00edtka a s pomoc\u00ed touchpadu d\u00e1t programu informaci o jejich stisku.<\/p>\n","protected":false},"author":1,"featured_media":964,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[49,126,129,134,133],"class_list":["post-950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programovani","tag-atmega","tag-display","tag-tft","tag-touchpad","tag-xpt2046"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ATmega a rezistivn\u00ed touchpad - Franti\u0161ek Posp\u00ed\u0161il<\/title>\n<meta name=\"description\" content=\"displej m\u00e1 rezistivn\u00ed touchpad a v tomto \u010dl\u00e1nku pop\u00ed\u0161u, jak na displeji nakreslit tla\u010d\u00edtka a s pomoc\u00ed touchpadu d\u00e1t programu informaci o jejich stisku.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ATmega a rezistivn\u00ed touchpad - Franti\u0161ek Posp\u00ed\u0161il\" \/>\n<meta property=\"og:description\" content=\"displej m\u00e1 rezistivn\u00ed touchpad a v tomto \u010dl\u00e1nku pop\u00ed\u0161u, jak na displeji nakreslit tla\u010d\u00edtka a s pomoc\u00ed touchpadu d\u00e1t programu informaci o jejich stisku.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/\" \/>\n<meta property=\"og:site_name\" content=\"Franti\u0161ek Posp\u00ed\u0161il\" \/>\n<meta property=\"article:published_time\" content=\"2016-08-12T18:38:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-01-12T16:58:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png\" \/>\n\t<meta property=\"og:image:width\" content=\"158\" \/>\n\t<meta property=\"og:image:height\" content=\"206\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"ok2jnj\" \/>\n<meta name=\"twitter:label1\" content=\"Napsal(a)\" \/>\n\t<meta name=\"twitter:data1\" content=\"ok2jnj\" \/>\n\t<meta name=\"twitter:label2\" content=\"Odhadovan\u00e1 doba \u010dten\u00ed\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/\"},\"author\":{\"name\":\"ok2jnj\",\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/611e6231cd7c1180c0871958f742373a\"},\"headline\":\"ATmega a rezistivn\u00ed touchpad\",\"datePublished\":\"2016-08-12T18:38:43+00:00\",\"dateModified\":\"2017-01-12T16:58:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/\"},\"wordCount\":1014,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/611e6231cd7c1180c0871958f742373a\"},\"image\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png\",\"keywords\":[\"ATmega\",\"Display\",\"tft\",\"touchpad\",\"XPT2046\"],\"articleSection\":[\"Programov\u00e1n\u00ed\"],\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/\",\"url\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/\",\"name\":\"ATmega a rezistivn\u00ed touchpad - Franti\u0161ek Posp\u00ed\u0161il\",\"isPartOf\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png\",\"datePublished\":\"2016-08-12T18:38:43+00:00\",\"dateModified\":\"2017-01-12T16:58:00+00:00\",\"description\":\"displej m\u00e1 rezistivn\u00ed touchpad a v tomto \u010dl\u00e1nku pop\u00ed\u0161u, jak na displeji nakreslit tla\u010d\u00edtka a s pomoc\u00ed touchpadu d\u00e1t programu informaci o jejich stisku.\",\"breadcrumb\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#breadcrumb\"},\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#primaryimage\",\"url\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png\",\"contentUrl\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png\",\"width\":158,\"height\":206},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Dom\u016f\",\"item\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ATmega a rezistivn\u00ed touchpad\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#website\",\"url\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/\",\"name\":\"Franti\u0161ek Posp\u00ed\u0161il\",\"description\":\"Na sv\u00fdch str\u00e1nk\u00e1ch popisuji cesty, kter\u00fdmi jsem do\u0161el k zam\u00fd\u0161len\u00fdm c\u00edl\u016fm. C\u00edle se ob\u010das b\u011bhem cesty zm\u011bnily.\",\"publisher\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/611e6231cd7c1180c0871958f742373a\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"cs\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/611e6231cd7c1180c0871958f742373a\",\"name\":\"ok2jnj\",\"logo\":{\"@id\":\"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ATmega a rezistivn\u00ed touchpad - Franti\u0161ek Posp\u00ed\u0161il","description":"displej m\u00e1 rezistivn\u00ed touchpad a v tomto \u010dl\u00e1nku pop\u00ed\u0161u, jak na displeji nakreslit tla\u010d\u00edtka a s pomoc\u00ed touchpadu d\u00e1t programu informaci o jejich stisku.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/","og_locale":"cs_CZ","og_type":"article","og_title":"ATmega a rezistivn\u00ed touchpad - Franti\u0161ek Posp\u00ed\u0161il","og_description":"displej m\u00e1 rezistivn\u00ed touchpad a v tomto \u010dl\u00e1nku pop\u00ed\u0161u, jak na displeji nakreslit tla\u010d\u00edtka a s pomoc\u00ed touchpadu d\u00e1t programu informaci o jejich stisku.","og_url":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/","og_site_name":"Franti\u0161ek Posp\u00ed\u0161il","article_published_time":"2016-08-12T18:38:43+00:00","article_modified_time":"2017-01-12T16:58:00+00:00","og_image":[{"width":158,"height":206,"url":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png","type":"image\/png"}],"author":"ok2jnj","twitter_misc":{"Napsal(a)":"ok2jnj","Odhadovan\u00e1 doba \u010dten\u00ed":"8 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#article","isPartOf":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/"},"author":{"name":"ok2jnj","@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/611e6231cd7c1180c0871958f742373a"},"headline":"ATmega a rezistivn\u00ed touchpad","datePublished":"2016-08-12T18:38:43+00:00","dateModified":"2017-01-12T16:58:00+00:00","mainEntityOfPage":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/"},"wordCount":1014,"commentCount":0,"publisher":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/611e6231cd7c1180c0871958f742373a"},"image":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#primaryimage"},"thumbnailUrl":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png","keywords":["ATmega","Display","tft","touchpad","XPT2046"],"articleSection":["Programov\u00e1n\u00ed"],"inLanguage":"cs","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/","url":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/","name":"ATmega a rezistivn\u00ed touchpad - Franti\u0161ek Posp\u00ed\u0161il","isPartOf":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#primaryimage"},"image":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#primaryimage"},"thumbnailUrl":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png","datePublished":"2016-08-12T18:38:43+00:00","dateModified":"2017-01-12T16:58:00+00:00","description":"displej m\u00e1 rezistivn\u00ed touchpad a v tomto \u010dl\u00e1nku pop\u00ed\u0161u, jak na displeji nakreslit tla\u010d\u00edtka a s pomoc\u00ed touchpadu d\u00e1t programu informaci o jejich stisku.","breadcrumb":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#breadcrumb"},"inLanguage":"cs","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/"]}]},{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#primaryimage","url":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png","contentUrl":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-content\/uploads\/2016\/08\/XPT2046a.png","width":158,"height":206},{"@type":"BreadcrumbList","@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/cs\/2016\/08\/atmega-rezistivni-touchpad\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Dom\u016f","item":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/"},{"@type":"ListItem","position":2,"name":"ATmega a rezistivn\u00ed touchpad"}]},{"@type":"WebSite","@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#website","url":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/","name":"Franti\u0161ek Posp\u00ed\u0161il","description":"Na sv\u00fdch str\u00e1nk\u00e1ch popisuji cesty, kter\u00fdmi jsem do\u0161el k zam\u00fd\u0161len\u00fdm c\u00edl\u016fm. C\u00edle se ob\u010das b\u011bhem cesty zm\u011bnily.","publisher":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/611e6231cd7c1180c0871958f742373a"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"cs"},{"@type":["Person","Organization"],"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/611e6231cd7c1180c0871958f742373a","name":"ok2jnj","logo":{"@id":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/posts\/950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/comments?post=950"}],"version-history":[{"count":10,"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/posts\/950\/revisions"}],"predecessor-version":[{"id":1362,"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/posts\/950\/revisions\/1362"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/media\/964"}],"wp:attachment":[{"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/media?parent=950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/categories?post=950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ok2jnj.ok2kld.cz\/ok2jnj\/wp-json\/wp\/v2\/tags?post=950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}