{"id":32463,"date":"2019-10-31T21:47:12","date_gmt":"2019-10-31T18:47:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi\/"},"modified":"2019-10-31T21:47:12","modified_gmt":"2019-10-31T18:47:12","slug":"kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","title":{"rendered":"Hogyan \u00e9s mi\u00e9rt olvassunk adatlapokat, ha a mikrokontroller a hobbink","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Hogyan \u00e9s mi\u00e9rt olvassunk adatlapokat, ha a mikrokontroller a hobbink\" src=\"\/wp-content\/uploads\/2019\/04\/ae2537b0263d692c4f79e7b5f7bc0797.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A mikroelektronika az ut\u00f3bbi \u00e9vek divatos szenved\u00e9lye a var\u00e1zslatos Arduino r\u00e9v\u00e9n. De mi a helyzet: ha valaki kell\u0151en \u00e9rdekl\u0151dik, a DigitalWrite()-ra gyorsan r\u00e1 lehet unni, de mi k\u00f6vetkezik ezut\u00e1n \u2013 nem teljesen vil\u00e1gos. Az Arduino fejleszt\u0151i jelent\u0151s er\u0151fesz\u00edt\u00e9seket tettek, hogy cs\u00f6kkents\u00e9k az \u00f6kosziszt\u00e9m\u00e1jukba val\u00f3 bel\u00e9p\u00e9s k\u00fcsz\u00f6b\u00e9t, de annak hat\u00e1rain k\u00edv\u00fcl tov\u00e1bbra is ott van a durva \u00e1ramk\u00f6r\u00f6k s\u00f6t\u00e9t erdeje, amely nehezen hozz\u00e1f\u00e9rhet\u0151 a hobbist\u00e1k sz\u00e1m\u00e1ra.<\/p>\n<p><\/p>\n<p>P\u00e9ld\u00e1ul a datasheetek. \u00dagy t\u0171nik, minden benne van, csak vedd el\u0151 \u00e9s haszn\u00e1ld. De az \u00edr\u00f3ik nyilv\u00e1nval\u00f3an nem arra t\u00f6rekednek, hogy n\u00e9pszer\u0171s\u00edts\u00e9k a mikrovez\u00e9rl\u0151ket; n\u00e9ha <em>\u00fagy t\u0171nik<\/em>, hogy sz\u00e1nd\u00e9kosan bonyolult kifejez\u00e9sekkel \u00e9s r\u00f6vid\u00edt\u00e9sekkel \u00edrj\u00e1k le az egyszer\u0171 dolgokat, hogy maxim\u00e1lisan \u00f6sszezavarj\u00e1k a szakmai tud\u00e1ssal nem rendelkez\u0151ket. De nem minden olyan rossz, ha akarod, a doboz kiny\u00edlik.<\/p>\n<p><\/p>\n<p>Ebben a cikkben megosztom tapasztalataimat a datasheetekkel val\u00f3 hobbic\u00e9l\u00fa kommunik\u00e1ci\u00f3r\u00f3l. A sz\u00f6veg a m\u00e1r a r\u00f6vidnadr\u00e1gb\u00f3l kin\u0151tt Arduino-rajong\u00f3knak sz\u00f3l, \u00e9s felt\u00e9telezi, hogy van n\u00e9mi elk\u00e9pzel\u00e9s\u00fck a mikrovez\u00e9rl\u0151k m\u0171k\u00f6d\u00e9si elveir\u0151l.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Kezdem a hagyom\u00e1nyossal<\/p>\n<p><\/p>\n<h3 id=\"migaem-svetodiodom-na-arduino\">LED villogtat\u00e1s Arduino-n<\/h3>\n<p><\/p>\n<p>\u00c9s azonnal a k\u00f3d:<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">void setup() {\nDDRB |= (1&lt;&lt;5);\n}\n\nvoid loop() {\nPINB = (1&lt;&lt;5);\nfor (volatile uint32_t k=0; k&lt;100000; k++);\n}<\/code><\/pre>\n<p><\/p>\n<p>\u201eMi ez? \u2013 k\u00e9rdezi a tapasztalt olvas\u00f3. \u2013 Mi\u00e9rt \u00edrsz valamit a PINB bemeneti regiszterbe? Az csak olvas\u00e1si c\u00e9lra val\u00f3!\u201d Val\u00f3ban, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.arduino.cc\/en\/Reference\/PortManipulation\">az Arduino dokument\u00e1ci\u00f3ja<\/a><\/noindex>, ak\u00e1rcsak a legt\u00f6bb online oktat\u00f3anyag, azt \u00e1ll\u00edtja, hogy ez a regiszter csak olvas\u00e1sra val\u00f3. \u00c9n is ezt hittem, am\u00edg \u00fajra nem olvastam <noindex><a rel=\"nofollow\" href=\"http:\/\/ww1.microchip.com\/downloads\/en\/DeviceDoc\/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf\">adatlap<\/a><\/noindex> az Atmega328p-r\u00f3l, mik\u00f6zben ezt a cikket k\u00e9sz\u00edtettem. \u00c9s ott van:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9s mi\u00e9rt olvassunk adatlapokat, ha a mikrokontroller a hobbink\" src=\"\/wp-content\/uploads\/2019\/04\/4c754bda59d9f18a38209cc32f0fb3a3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ez egy viszonylag \u00faj funkci\u00f3, nem volt jelen az Atmega8-on, sokan nem tudnak r\u00f3la, vagy nem eml\u00edtik a visszamen\u0151leges \u00f6sszef\u00e9rhet\u0151s\u00e9g miatt. De teljesen haszn\u00e1lhat\u00f3 arra, hogy megmutassa, hogy a datasheeteket \u00e9rdemes olvasni, hogy kihaszn\u00e1lhassuk a chip \u00f6sszes lehet\u0151s\u00e9g\u00e9t, bele\u00e9rtve a kev\u00e9ss\u00e9 ismert funkci\u00f3kat is. \u00c9s ez nem az egyetlen ok.<\/p>\n<p><\/p>\n<h2 id=\"zachem-esche-chitat-datashity\">Mi\u00e9rt \u00e9rdemes m\u00e9g datasheeteket olvasni<\/h2>\n<p><\/p>\n<p>\u00c1ltal\u00e1ban az Arduino-rajong\u00f3k, miut\u00e1n j\u00e1tszadoztak a LED-ekkel \u00e9s az AnalogWrite-ot haszn\u00e1lt\u00e1k, k\u00fcl\u00f6nf\u00e9le modulokat \u00e9s chippeket kezdenek csatlakoztatni az alaplaphoz, amelyekhez m\u00e1r l\u00e9teznek k\u00f6nyvt\u00e1rak. El\u0151bb-ut\u00f3bb megjelenik egy k\u00f6nyvt\u00e1r, amely nem \u00fagy m\u0171k\u00f6dik, ahogyan kellene. Ekkor a hobbi fejleszt\u0151 elkezdi turk\u00e1lni, hogy jav\u00edtson rajta, \u00e9s ott\u2026<\/p>\n<p><\/p>\n<p>Ott valami kateg\u00f3rikusan \u00e9rthetetlen dolog t\u00f6rt\u00e9nik, ez\u00e9rt el kell mennem a Google-hoz, hogy olvassak sz\u00e1mos \u00fatmutat\u00f3t, kiszedegetve valakinek a megfelel\u0151 k\u00f3dj\u00e1t, \u00e9s v\u00e9g\u00fcl el\u00e9rjem a c\u00e9lomat. Ez er\u0151teljes el\u00e9gedetts\u00e9get ad, de val\u00f3j\u00e1ban a folyamat hasonl\u00edt a ker\u00e9kp\u00e1r feltal\u00e1l\u00e1s\u00e1ra a motorker\u00e9kp\u00e1r visszafejleszt\u00e9s\u00e9vel. R\u00e1ad\u00e1sul nem n\u0151 a meg\u00e9rt\u00e9s arr\u00f3l, hogyan m\u0171k\u00f6dik ez a ker\u00e9kp\u00e1r. Tudom, mert magam is foglalkoztam ezzel egy ideig.<\/p>\n<p><\/p>\n<p>Ha ink\u00e1bb pazaroltam volna n\u00e9h\u00e1ny napot az Atmega328 dokument\u00e1ci\u00f3j\u00e1nak tanulm\u00e1nyoz\u00e1s\u00e1ra, hatalmas id\u0151t takar\u00edthattam volna meg. V\u00e9g\u00fcl is ez egy meglehet\u0151sen egyszer\u0171 mikrokontroller.<\/p>\n<p><\/p>\n<p>\u00cdgy h\u00e1t legal\u00e1bb a datasheet-eket el kell olvasni, hogy valamilyen k\u00e9pet alkossunk arr\u00f3l, hogyan m\u0171k\u00f6dik a mikrokontroller, \u00e9s hogy mit tud csin\u00e1lni. \u00c9s m\u00e9g:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>hogy ellen\u0151rizz\u00fck \u00e9s optimaliz\u00e1ljuk m\u00e1sok k\u00f6nyvt\u00e1rait. Ezeket gyakran olyan hobbist\u00e1k \u00edrj\u00e1k, akik ker\u00e9kp\u00e1rt tal\u00e1lnak fel; vagy \u00e9ppen ellenkez\u0151leg, az \u00edr\u00f3k sz\u00e1nd\u00e9kosan t\u00falbiztos\u00edtj\u00e1k \u0151ket. Legyen ak\u00e1r h\u00e1romszor nagyobb \u00e9s lassabb, de biztosan m\u0171k\u00f6dni fog;<\/p>\n<p>\n<\/li>\n<li>\n<p>hogy lehet\u0151v\u00e9 tegy\u00fck olyan chip-ek haszn\u00e1lat\u00e1t a projektben, amelyekhez senki nem \u00edrt k\u00f6nyvt\u00e1rat;<\/p>\n<p>\n<\/li>\n<li>\n<p>hogy megk\u00f6nny\u00edts\u00fck a feladatunkat egy mikrokontroller csal\u00e1dr\u00f3l egy m\u00e1sikra val\u00f3 migr\u00e1l\u00e1skor;<\/p>\n<p>\n<\/li>\n<li>\n<p>hogy v\u00e9gre optimaliz\u00e1lhassuk a r\u00e9gi k\u00f3dunkat, amely sehogy sem f\u00e9rt el az Arduin\u00f3n;<\/p>\n<p>\n<\/li>\n<li>\n<p>hogy megtanuljunk k\u00f6zvetlen\u00fcl ir\u00e1ny\u00edtani b\u00e1rmely chipet a regiszterein kereszt\u00fcl, an\u00e9lk\u00fcl, hogy a k\u00f6nyvt\u00e1rainak m\u0171k\u00f6d\u00e9s\u00e9t kellene tanulm\u00e1nyoznunk, ha egy\u00e1ltal\u00e1n vannak ilyenek.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"zachem-pisat-v-registry-napryamuyu-kogda-est-hal-i-ll\">Mi\u00e9rt \u00edrjunk k\u00f6zvetlen\u00fcl a regiszterekbe, amikor van HAL \u00e9s LL?<\/h2>\n<p><\/p>\n<p><em>Sz\u00f3t\u00e1r<\/em><br \/>\n<em><strong>HAL, High Abstraction Layer<\/strong> \u2013 k\u00f6nyvt\u00e1r a mikrokontroller magas szint\u0171 absztrakci\u00f3j\u00e1nak kezel\u00e9s\u00e9re. Ha az SPI1 interf\u00e9szt kell haszn\u00e1lnunk, egyszer\u0171en be\u00e1ll\u00edtjuk \u00e9s aktiv\u00e1ljuk az SPI1-et, an\u00e9lk\u00fcl, hogy gondolkodnunk kellene, hogy mely regiszterek mit ir\u00e1ny\u00edtanak.<br \/>\n<strong>LL, Low Level API<\/strong> \u2013 k\u00f6nyvt\u00e1r, amely makr\u00f3kat vagy strukt\u00far\u00e1kat tartalmaz regiszterek c\u00edmeivel, lehet\u0151v\u00e9 t\u00e9ve sz\u00e1munkra, hogy neveken kereszt\u00fcl h\u00edvhassuk \u0151ket. DDRx, PORTx, PINx az Atmeg\u00e1n \u2013 ez LL.<\/em><\/p>\n<p><\/p>\n<p>A \"HAL, LL vagy regiszterek\" t\u00e9m\u00e1ban zajl\u00f3 vit\u00e1k rendszeresen el\u0151fordulnak a Habr kommentjeiben. An\u00e9lk\u00fcl, hogy b\u00e1rmilyen asztr\u00e1lis tud\u00e1sra t\u00f6rekedn\u00e9k, egyszer\u0171en megosztom amat\u0151r tapasztalataimat \u00e9s megfontol\u00e1saimat.<\/p>\n<p><\/p>\n<p>Miut\u00e1n jobban megismertem az Atmeg\u00e1t \u00e9s szakmai cikkeket olvastam az STM32 sz\u00e9ps\u00e9geir\u0151l, vettem egy tucat k\u00fcl\u00f6nb\u00f6z\u0151 lapk\u00e1t \u2013 \u00edgy Discovery-t, \u201eK\u00e9k Tablett\u00e1kat\u201d, \u00e9s m\u00e9g sima chipet is a saj\u00e1t projektemhez. K\u00e9t \u00e9ven \u00e1t porosodtak a dobozban. N\u00e9ha azt mondtam magamnak: \u201ena most kezdji el az STM tanulm\u00e1nyoz\u00e1s\u00e1t\u201d, elind\u00edtottam a CubeMX-et, gener\u00e1ltam egy SPI be\u00e1ll\u00edt\u00e1st, n\u00e9ztem a kapott sz\u00f6vegfalat, amit b\u0151ven f\u0171szerezett az STM szerz\u0151i jogai, \u00e9s \u00fagy d\u00f6nt\u00f6ttem, hogy ez m\u00e1r t\u00fal sok.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9s mi\u00e9rt olvassunk adatlapokat, ha a mikrokontroller a hobbink\" src=\"\/wp-content\/uploads\/2019\/04\/d83be97ba2767121f4be20d524000afe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Meg\u00e9rteni, hogy mit \u00edrt a CubeMX, persze lehet. De nyilv\u00e1nval\u00f3, hogy az \u00f6sszes megfogalmaz\u00e1st megjegyezni, hogy k\u00e9s\u0151bb k\u00e9zzel \u00edrhassam \u0151ket, lehetetlen. \u00c9s debugolni ezt, ha v\u00e9letlen\u00fcl elfelejtem bekapcsolni egy pip\u00e1t a Cube-ban \u2013 az kifejezetten kellemetlen.<\/p>\n<p><\/p>\n<p>K\u00e9t \u00e9v eltelt, \u00e9n m\u00e9g mindig v\u00e1gyakozva n\u00e9ztem a <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=fr.appsolute.st&amp;hl=ru\">ST MCU Finder<\/a><\/noindex> k\u00fcl\u00f6nf\u00e9le \u00ednycsikland\u00f3, de sz\u00e1momra \u00e9rthetetlen chipekre, \u00e9s v\u00e9letlen\u00fcl r\u00e1tal\u00e1ltam <noindex><a rel=\"nofollow\" href=\"https:\/\/lujji.github.io\/blog\/bare-metal-programming-stm8\/\">egy csod\u00e1latos cikket<\/a><\/noindex>, m\u00e9g ha az STM8-r\u00f3l is volt sz\u00f3. \u00c9s <em>hirtelen<\/em> r\u00e1j\u00f6ttem, hogy mindez id\u0151 alatt nyitott ajt\u00f3n kopogtattam: az STM regiszterei ugyan\u00fagy m\u0171k\u00f6dnek, mint b\u00e1rmely m\u00e1s mikrovez\u00e9rl\u0151\u00e9, \u00e9s a vel\u00fck val\u00f3 munka nem ig\u00e9nyli a Cube haszn\u00e1lat\u00e1t. <em>Hogy mi? Ezt \u00edgy is lehetett?<\/em><\/p>\n<p><\/p>\n<p>A HAL \u00e9s konkr\u00e9tan a STM32CubeMX egy professzion\u00e1lis m\u00e9rn\u00f6kek sz\u00e1m\u00e1ra k\u00e9sz\u00fclt eszk\u00f6z, akik szorosan dolgoznak az STM32 chipekkel. A f\u0151 jellemz\u0151je a magas szint\u0171 absztrakci\u00f3, lehet\u0151s\u00e9g arra, hogy gyorsan \u00e1t\u00e1llj egy m\u00e1sik mikrovez\u00e9rl\u0151re, s\u0151t egy m\u00e1sik magra is, mik\u00f6zben az STM32 csal\u00e1don bel\u00fcl maradsz. Az ilyen feladatokat ritk\u00e1n tapasztalj\u00e1k a hobbi felhaszn\u00e1l\u00f3k \u2013 \u00e1ltal\u00e1ban a mikrovez\u00e9rl\u0151 v\u00e1laszt\u00e1sunkat az AliExpress k\u00edn\u00e1lata korl\u00e1tozza, \u00e9s gyakran radik\u00e1lisan k\u00fcl\u00f6nb\u00f6z\u0151 chipek k\u00f6z\u00f6tt migr\u00e1lunk \u2013 \u00e1tugrunk az Atmeg\u00e1r\u00f3l az STM-re, STM-r\u0151l az ESP-re, vagy amit a k\u00ednai bar\u00e1tainkt\u00f3l \u00fajonnan kapunk. A HAL itt nem seg\u00edt, \u00e9s az id\u0151, amit a tanulm\u00e1nyoz\u00e1s\u00e1ra ford\u00edtunk, sokat elvesz.<\/p>\n<p><\/p>\n<p>Marad a LL \u2013 de att\u00f3l a regiszterekig csak egy l\u00e9p\u00e9s van. Szem\u00e9ly szerint hasznosnak tal\u00e1lom a regiszter c\u00edmeket tartalmaz\u00f3 makr\u00f3k \u00edr\u00e1s\u00e1t: \u00edgy figyelmesebben tanulm\u00e1nyozom a datasheetet, gondolkodom, mire lesz sz\u00fcks\u00e9gem a j\u00f6v\u0151ben, mi az, amire biztosan nem, jobban strukt\u00far\u00e1lom a programjaimat, \u00e9s egy\u00e9bk\u00e9nt is a legy\u0151z\u00e9s hozz\u00e1j\u00e1rul a megjegyz\u00e9shez.<\/p>\n<p><\/p>\n<p>Ezen k\u00edv\u00fcl van egy \u00e9rdekess\u00e9g a n\u00e9pszer\u0171 STM32F103-al kapcsolatban \u2013 l\u00e9tezik k\u00e9t inkompatibilis LL verzi\u00f3ja, az egyik hivatalos az STM-t\u0151l, a m\u00e1sik a Leaf Labs-t\u00f3l, amelyet a STM32duino projekt haszn\u00e1l. Ha open-source k\u00f6nyvt\u00e1rat \u00edrok (\u00e9s nekem \u00e9ppen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Ontaelio\/DMdriverSTM32F1\">ilyen feladatom volt<\/a><\/noindex>), akkor vagy k\u00e9t verzi\u00f3t kell csin\u00e1lnom, vagy k\u00f6zvetlen\u00fcl a regiszterekhez kell fordulnom.<\/p>\n<p><\/p>\n<p>V\u00e9g\u00fcl is, az LL elhagy\u00e1sa szerintem megk\u00f6nny\u00edti a migr\u00e1ci\u00f3t, k\u00fcl\u00f6n\u00f6sen, ha m\u00e1r a projekt kezdet\u00e9n figyelembe vessz\u00fck. Egy t\u00falozott p\u00e9lda: \u00edrjuk meg az Arduino blink programot Atmel Studio-ban LL n\u00e9lk\u00fcl:<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">#include &lt;stdint.h&gt;\n\n#define _REG(addr) (*(volatile uint8_t*)(addr))\n\n#define DDR_B 0x24\n#define OUT_B 0x25\n\nint main(void)\n{\n    volatile uint32_t k;\n\n    _REG(DDR_B) |= (1&lt;&lt;5);\n\n    while(1)\n    {\n        _REG(OUT_B) |= (1&lt;&lt;5);\n        for (k=0; k&lt;50000; k++);\n        _REG(OUT_B) &amp;= ~(1&lt;&lt;5);\n        for (k=0; k&lt;50000; k++);\n    } \n}<\/code><\/pre>\n<p><\/p>\n<p>Ahhoz, hogy ez a k\u00f3d villogtassa a LED-et egy k\u00ednai STM8 lapk\u00e1n (az ST Visual Desktop-b\u00f3l), el\u00e9g, ha k\u00e9t c\u00edmet megv\u00e1ltoztatunk benne:<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">#define DDR_B 0x5007\n#define OUT_B 0x5005<\/code><\/pre>\n<p><\/p>\n<p>Igen, a konkr\u00e9t lapk\u00e1n l\u00e9v\u0151 LED csatlakoztat\u00e1s\u00e1nak saj\u00e1toss\u00e1g\u00e1t haszn\u00e1lom, lassan fog villogni, de fog!<\/p>\n<p><\/p>\n<h2 id=\"kakie-byvayut-datashity\">Milyen t\u00edpus\u00fa adatt\u00e1bl\u00e1k l\u00e9teznek?<\/h2>\n<p><\/p>\n<p>A cikkekben \u00e9s f\u00f3rumokon, mind a orosz, mind az angol nyelv\u0171ekben, az \u201eadatt\u00e1bl\u00e1k\u201d alatt b\u00e1rmilyen technikai dokument\u00e1ci\u00f3t \u00e9rtenek a chippekhez, \u00edgy \u00e9n is ezt tegyem ebben a sz\u00f6vegben. Form\u00e1lisan ezek csak egy t\u00edpusa ennek a dokument\u00e1ci\u00f3nak:<\/p>\n<p><\/p>\n<p><strong>Adatt\u00e1bla<\/strong> \u2013 m\u0171szaki adatok (TTX), taktikai-technikai jellemz\u0151k. Fenn kell, hogy legyen b\u00e1rmely elektronikus alkatr\u00e9szn\u00e9l. Seg\u00e9dinform\u00e1ci\u00f3, hasznos k\u00e9zn\u00e9l tartani, de k\u00fcl\u00f6n\u00f6sebben nem \u00e9rdemes alaposan \u00e1tn\u00e9zni. Mindazon\u00e1ltal az egyszer\u0171bb chipek gyakran csak adatt\u00e1bl\u00e1val rendelkeznek, hogy elker\u00fclj\u00e9k a felesleges dokumentumok l\u00e9trehoz\u00e1s\u00e1t; ebben az esetben <em>Referencia K\u00e9zik\u00f6nyv<\/em> ide is beletartozik.<\/p>\n<p><\/p>\n<p><strong>Referencia K\u00e9zik\u00f6nyv<\/strong> \u2013 maga az \u00fatmutat\u00f3, egy vaskos k\u00f6nyv 1000+ oldalon. R\u00e9szletesen le\u00edrja mindazt, ami a chipbe van be\u00e9p\u00edtve. A legfontosabb dokumentum a mikrokontroller elsaj\u00e1t\u00edt\u00e1s\u00e1hoz. Ellent\u00e9tben a <em>datasheet<\/em>, az \u00fatmutat\u00f3kat sz\u00e9les sk\u00e1l\u00e1ban \u00edrj\u00e1k, sok inform\u00e1ci\u00f3t tartalmaznak a perif\u00e9ri\u00e1r\u00f3l, amelyik hi\u00e1nyzik a konkr\u00e9t modellb\u0151l.<\/p>\n<p><\/p>\n<p><strong>Programoz\u00e1si K\u00e9zik\u00f6nyv<\/strong> vagy <strong>Utas\u00edt\u00e1sk\u00e9szlet-\u00fatmutat\u00f3<\/strong> \u2013 az egyedi mikrokontroller parancsokra vonatkoz\u00f3 \u00fatmutat\u00f3. Azoknak sz\u00f3l, akik Assembly nyelven programoznak. A ford\u00edt\u00f3programok szerz\u0151i akt\u00edvan haszn\u00e1lj\u00e1k az optimaliz\u00e1lt k\u00f3dhoz, ez\u00e9rt \u00e1ltal\u00e1ban nek\u00fcnk erre nem lesz sz\u00fcks\u00e9g\u00fcnk. De \u00e9rdemes ide ben\u00e9zni, hogy meg\u00e9rts\u00fck az \u00e1ltal\u00e1nos koncepci\u00f3t, k\u00fcl\u00f6n\u00f6s figyelmet ford\u00edtva az olyan specifikus parancsokkal, mint a megszak\u00edt\u00e1sb\u00f3l val\u00f3 kil\u00e9p\u00e9s, \u00e9s akt\u00edv debuggol\u00e1sn\u00e1l is.<\/p>\n<p><\/p>\n<p><strong>Alkalmaz\u00e1si megjegyz\u00e9s<\/strong> \u2013 hasznos tippek konkr\u00e9t feladatok megold\u00e1s\u00e1hoz, gyakran k\u00f3d p\u00e9ld\u00e1kkal.<\/p>\n<p><\/p>\n<p><strong>Hibajelent\u00e9s<\/strong> \u2013 a chip nem szabv\u00e1nyos viselked\u00e9s\u00e9nek le\u00edr\u00e1sa elker\u00fcl\u00e9si lehet\u0151s\u00e9gekkel, ha vannak.<\/p>\n<p><\/p>\n<h2 id=\"chto-est-v-datashitah\">Mik tal\u00e1lhat\u00f3k az adatt\u00e1bl\u00e1kban?<\/h2>\n<p><\/p>\n<p>K\u00f6zvetlen\u00fcl az <em>Adatt\u00e1bla<\/em> sz\u00e1munkra sz\u00fcks\u00e9ges r\u00e9szek:<\/p>\n<p><\/p>\n<p><strong>Device Summary<\/strong> \u2013 az adatt\u00e1bla els\u0151 oldala r\u00f6viden bemutatja az eszk\u00f6zt. Nagyon hasznos olyan helyzetekben, amikor valahol tal\u00e1ltunk egy chipet (l\u00e1ttuk a boltban, kiszedt\u00fck, eml\u00edt\u00e9st kaptunk r\u00f3la), \u00e9s szeretn\u00e9nk meg\u00e9rteni, hogy mi az.<\/p>\n<p><\/p>\n<p><strong>\u00c1ltal\u00e1nos le\u00edr\u00e1s<\/strong> \u2013 r\u00e9szletesebb le\u00edr\u00e1s a chipek k\u00e9pess\u00e9geir\u0151l.<\/p>\n<p><\/p>\n<p><strong>Pinouts<\/strong> \u2013 a chip minden lehets\u00e9ges h\u00e1z\u00e1hoz tartoz\u00f3 pin kioszt\u00e1si s\u00e9m\u00e1k (melyik l\u00e1bon melyik pin tal\u00e1lhat\u00f3).<\/p>\n<p><\/p>\n<p><strong>Pin Description<\/strong> \u2013 a pinek funkci\u00f3inak \u00e9s lehet\u0151s\u00e9geinek le\u00edr\u00e1sa.<\/p>\n<p><\/p>\n<p><strong>Memory Map<\/strong> \u2013 a mem\u00f3ri\u00e1ban val\u00f3 c\u00edmk\u00e9p, amely val\u00f3sz\u00edn\u0171leg nem sz\u00fcks\u00e9ges sz\u00e1munkra, de n\u00e9ha a regiszterek blokkjainak c\u00edmadatait is tartalmazza.<\/p>\n<p><\/p>\n<p><strong>Register Map<\/strong> \u2013 a regiszterek blokkjainak c\u00edmadatait \u00e1ltal\u00e1ban a datasheet tartalmazza, m\u00edg a <em>Ref Manual<\/em> \u2013 csak a eltol\u00e1sok (<em>address offsets<\/em>).<\/p>\n<p><\/p>\n<p><strong>Electrical Characteristics<\/strong> \u2013 ebben a r\u00e9szben els\u0151sorban azzal vagyunk \u00e9rdekeltek, <strong>abszol\u00fat maxim\u00e1lis \u00e9rt\u00e9kek<\/strong>, amelyek a chip maxim\u00e1lis terhel\u00e9seit sorolj\u00e1k fel. A robusztus Atmega328p-vel ellent\u00e9tben a legt\u00f6bb mikrokontroller nem enged meg komoly terhel\u00e9seket a pineken, ami kellemetlen meglepet\u00e9st okozhat az Arduino felhaszn\u00e1l\u00f3knak.<\/p>\n<p><\/p>\n<p><strong>Package Information<\/strong> \u2013 a rendelkez\u00e9sre \u00e1ll\u00f3 h\u00e1zak rajzai, amelyek hasznosak a saj\u00e1t \u00e1ramk\u00f6reik tervez\u00e9s\u00e9n\u00e9l.<\/p>\n<p><\/p>\n<p><em>Referencia K\u00e9zik\u00f6nyv<\/em> szerkezeti fel\u00e9p\u00edt\u00e9se olyan r\u00e9szekb\u0151l \u00e1ll, amelyek a c\u00edm\u00fckben felt\u00fcntetett konkr\u00e9t perif\u00e9ri\u00e1kkal foglalkoznak. Minden fejezet h\u00e1rom r\u00e9szre bonthat\u00f3:<\/p>\n<p><\/p>\n<p><strong>\u00c1ttekint\u00e9s<\/strong>, <strong>Bevezet\u00e9s<\/strong>, <strong>Features<\/strong> \u2013 a perif\u00e9ria lehet\u0151s\u00e9geinek \u00e1ttekint\u00e9se;<\/p>\n<p><\/p>\n<p><strong>Functional Description<\/strong>, <strong>Usage Guide<\/strong> vagy egyszer\u0171en a r\u00e9sz alapvet\u0151 blokkja \u2013 a perif\u00e9ria m\u0171k\u00f6d\u00e9si elveinek \u00e9s haszn\u00e1lati m\u00f3djainak r\u00e9szletes le\u00edr\u00e1sa;<\/p>\n<p><\/p>\n<p><strong>Registers<\/strong> \u2013 a vez\u00e9rl\u0151regiszterek le\u00edr\u00e1sa. Egyszer\u0171 esetekben, p\u00e9ld\u00e1ul GPIO vagy SPI eset\u00e9n ez elegend\u0151 lehet a perif\u00e9ria haszn\u00e1lat\u00e1nak megkezd\u00e9s\u00e9hez, de gyakran sz\u00fcks\u00e9g van a kor\u00e1bbi r\u00e9szek \u00e1tn\u00e9z\u00e9s\u00e9re is.<\/p>\n<p><\/p>\n<h2 id=\"kak-chitat-datashity\">Hogyan olvassunk datasheeteket<\/h2>\n<p><\/p>\n<p>A datasheetek a kezdetben megd\u00f6bbenthetnek terjedelm\u00fckkel \u00e9s az ismeretlen szavak gazdags\u00e1g\u00e1val. Val\u00f3j\u00e1ban nem olyan ijeszt\u0151, ha tudunk n\u00e9h\u00e1ny praktikus tippet.<\/p>\n<p><\/p>\n<p>Telep\u00edtse <strong>j\u00f3 PDF-olvas\u00f3val<\/strong>. A datasheetek a pap\u00edralap\u00fa \u00fatmutat\u00f3k dics\u0151s\u00e9ges hagyom\u00e1nyai szerint k\u00e9sz\u00fclnek, remek\u00fcl kiadhat\u00f3k, m\u0171anyag k\u00f6nyvjelz\u0151kkel jel\u00f6lhet\u0151k \u00e9s \u00f6sszef\u0171zhet\u0151k. A hipertext mennyis\u00e9ge eleny\u00e9sz\u0151. Szerencs\u00e9re a dokumentum strukt\u00far\u00e1j\u00e1t k\u00f6nyvjelz\u0151kkel is ell\u00e1tj\u00e1k, \u00edgy egy j\u00f3 navig\u00e1ci\u00f3val rendelkez\u0151 olvas\u00f3ra nagy sz\u00fcks\u00e9g van.<\/p>\n<p><\/p>\n<p>A datasheet nem Bjarne Stroustrup tank\u00f6nyve, benne <strong>nem kell mindent egyb\u0151l elolvasni<\/strong>. Ha az el\u0151z\u0151 tan\u00e1csot k\u00f6vett\u00fck \u2013 egyszer\u0171en keress\u00fck meg a k\u00f6nyvjelz\u0151k panelj\u00e9n a sz\u00fcks\u00e9ges r\u00e9szt.<\/p>\n<p><\/p>\n<p>A datasheetek, k\u00fcl\u00f6n\u00f6sen <em>Reference Manuals<\/em>, nem a konkr\u00e9t chip k\u00e9pess\u00e9geit, hanem <strong>az eg\u00e9sz sorozatot<\/strong>. Ez azt jelenti, hogy az inform\u00e1ci\u00f3k fele, s\u0151t lehet, hogy a k\u00e9tharmada nem vonatkozik a chipre. Miel\u0151tt a TIM7 regisztereit tanulm\u00e1nyozn\u00e1nk, ellen\u0151rizz\u00fck. <em>\u00c1ltal\u00e1nos le\u00edr\u00e1s<\/em>, van van n\u00e1latok?<\/p>\n<p><\/p>\n<p>Tudni <strong>angolul<\/strong> el\u00e9g alapszinten <strong>. A datasheetek f\u00e9lig ismeretlen szakszavakb\u00f3l, f\u00e9lig pedig egyszer\u0171 \u00f6sszek\u00f6t\u0151 konstrukci\u00f3kb\u00f3l \u00e1llnak. Vannak csod\u00e1s k\u00ednai datasheetek is k\u00ednai angolul, ahol a fele szaksz\u00f3, a m\u00e1sik fele pedig v\u00e9letlenszer\u0171 szavak \u00f6sszess\u00e9ge.<\/strong>Ha tal\u00e1lkozol<\/p>\n<p><\/p>\n<p>ismeretlen sz\u00f3val <strong>, ne pr\u00f3b\u00e1ld meg leford\u00edtani angol-orosz sz\u00f3t\u00e1rral. Ha megakad\u00e1lynak \u00e9rzed<\/strong>hysteresis <em>, akkor a \"hister\u00e9zis\" ford\u00edt\u00e1ssal nem fogsz melegebb \u00e9rz\u00e9seket keltetni. Haszn\u00e1lj G\u00faglt, Stack Overflow-t, Wikip\u00e9dia-t, f\u00f3rumokat, ahol a sz\u00fcks\u00e9ges fogalom<\/em>egyszer\u0171 szavakkal, p\u00e9ld\u00e1kkal lesz magyar\u00e1zva. <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/5357918\/what-does-hysteresis-mean-and-how-does-it-apply-to-computer-science-or-programmi\">A legjobb m\u00f3dja a meg\u00e9rt\u00e9snek az, hogy<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>kipr\u00f3b\u00e1lod a gyakorlatban. <strong>. Ez\u00e9rt tartsd k\u00e9zn\u00e9l a bemutat\u00f3 lapot, amivel ismerkedsz, vagy m\u00e9g jobb, ha van egy m\u00e1sik is \u2013 ha esetleg valamit nem \u00e9rtett\u00e9l meg \u00e9s megpillantott\u00e1l egy var\u00e1zslatos f\u00fcst\u00f6t.<\/strong>Hasznos szok\u00e1s, ha k\u00e9zn\u00e9l tartod a datasheetet, amikor<\/p>\n<p><\/p>\n<p>valaki tutori\u00e1lj\u00e1t olvasod <strong>vagy egy m\u00e1sik k\u00f6nyvt\u00e1rat tanulm\u00e1nyozol. El\u0151fordulhat, hogy benne tal\u00e1lod a feladatod optim\u00e1lisabb megold\u00e1s\u00e1t. \u00c9s ford\u00edtva \u2013 ha a datasheetb\u0151l nem tudod meg\u00e9rteni, hogyan m\u0171k\u00f6dik a regiszter, keress r\u00e1: val\u00f3sz\u00edn\u0171leg m\u00e1r valaki mindezt le\u00edrta egyszer\u0171 szavakkal vagy hagyott \u00e9rthet\u0151 k\u00f3dot a GitHub-on.<\/strong> N\u00e9h\u00e1ny hasznos sz\u00f3 \u00e9s jel\u00f6l\u00e9s, ami seg\u00edthet gyorsabban eligibil\u00e1l\u00f3dni a datasheetekkel. A legut\u00f3bbi p\u00e1r napban eszembe jutott dolgok, b\u00e1rmilyen kieg\u00e9sz\u00edt\u00e9st \u00e9s jav\u00edt\u00e1st sz\u00edvesen fogadok.<\/p>\n<p><\/p>\n<h2 id=\"slovarik\">Sz\u00f3t\u00e1r<\/h2>\n<p><\/p>\n<p>Elektromoss\u00e1g<\/p>\n<p><\/p>\n<p><em>Vcc<\/em><br \/>\n<strong>Vdd<\/strong>, <strong>\u2013 \"plusz\", t\u00e1pfesz\u00fclts\u00e9g<\/strong> Vss<br \/>\n<strong>Vee<\/strong>, <strong>\u2013 \"m\u00ednusz\", f\u00f6ld<\/strong> current<br \/>\n<strong>\u2013 \u00e1ram<\/strong> voltage<br \/>\n<strong>\u2013 fesz\u00fclts\u00e9g<\/strong> to sink current<br \/>\n<strong>\u2013 \"f\u00f6ldk\u00e9nt\" m\u0171k\u00f6dik a k\u00fcls\u0151 terhel\u00e9shez<\/strong> to source current<br \/>\n<strong>\u2013 t\u00e1pl\u00e1lja a k\u00fcls\u0151 terhel\u00e9st<\/strong> high sink\/source pin<br \/>\n<strong>\u2013 t\u0171, amely magasabb \"toleranci\u00e1t\" b\u00edr el a terhel\u00e9shez<\/strong> H, High<\/p>\n<p><\/p>\n<p><em>IO<\/em><br \/>\n<strong>\u2013 a Vcc t\u0171n<\/strong> L, Low<br \/>\n<strong>\u2013 a Vss t\u0171n<\/strong> High Impedance<br \/>\n<strong>floating<\/strong>, <strong>Hi-Z<\/strong>, <strong>\u2013 a t\u0171n nincs semmi, \"magas impedancia\", val\u00f3j\u00e1ban l\u00e1thatatlan a k\u00fcls\u0151 vil\u00e1g sz\u00e1m\u00e1ra.<\/strong> weak pull up<br \/>\n<strong>weak pull down<\/strong>, <strong>\u2013 be\u00e9p\u00edtett h\u00faz\u00f3\/coszor\u00faz\u00f3 ellen\u00e1ll\u00e1s, hozz\u00e1vet\u0151leg 50 k\u03a9 (l\u00e1sd datasheet). Haszn\u00e1latos p\u00e9ld\u00e1ul, hogy a bemeneti t\u0171 ne legyen leveg\u0151ben, ami t\u00e9ves aktiv\u00e1l\u00e1st okozhat.<\/strong> Weak <em>\u2013 mert k\u00f6nnyen \"legy\u0151zhet\u0151\".<\/em> push pull<br \/>\n<strong>\u2013 a t\u0171 kimeneti \u00fczemm\u00f3dja, amelyben v\u00e1lt \u00e1t<\/strong> \u2013 szok\u00e1sos OUTPUT az Arduinoval. <em>Magas<\/em> \u00e9s <em>Alacsony<\/em> \u2013 a t\u0171 kimeneti \u00fczemm\u00f3dj\u00e1nak jel\u00f6l\u00e9se, amelyben a t\u0171 lehet vagy<br \/>\n<strong>open drain<\/strong> High Impedance \/ Floating <em>Alacsony<\/em>, vagy <em>Magas impedancia \/ Lebeg\u0151<\/em>. Szinte mindig nem 'igazi' nyitott \u00e1ramk\u00f6r, v\u00e9d\u0151 di\u00f3da, ellen\u00e1ll\u00f3k \u00e9s m\u00e9g sok m\u00e1s tal\u00e1lhat\u00f3 benne. Ez csup\u00e1n a f\u00f6ldi \/ semmit sem jel\u00f6l\u0151 \u00fczemm\u00f3dot jelenti.<br \/>\n<strong>igazi nyitott \u00e1ramk\u00f6r<\/strong> \u2013 ez m\u00e1r az igazi nyitott \u00e1ramk\u00f6r: a pin k\u00f6zvetlen\u00fcl a f\u00f6ldre vezet, ha nyitva van, vagy lebeg\u0151 \u00e1llapotban van, ha z\u00e1rva van. Ez azt jelenti, hogy rajta kereszt\u00fcl sz\u00fcks\u00e9g eset\u00e9n a Vcc-n\u00e1l nagyobb fesz\u00fclts\u00e9get lehet vezetni, de a maximumot m\u00e9g mindig a m\u0171szaki adatok tartalmazz\u00e1k a <em>Abszol\u00fat Maxim\u00e1lis \u00c9rt\u00e9kek \/ Fesz\u00fclts\u00e9g<\/em>. <\/p>\n<p><\/p>\n<p><em>Csatlakoz\u00f3k<\/em><br \/>\n<strong>sorosan<\/strong> \u2013 sorosan csatlakoztatva<br \/>\n<strong>l\u00e1ncba<\/strong> \u2013 chipek l\u00e1ncba val\u00f3 \u00f6sszekapcsol\u00e1sa soros csatlakoztat\u00e1ssal, n\u00f6velve a kimenetek sz\u00e1m\u00e1t.<br \/>\n<strong>shift<\/strong> \u2013 eltol\u00e1s, \u00e1ltal\u00e1ban a bitek eltol\u00e1s\u00e1t jelenti. Ennek megfelel\u0151en <strong>eltolni be<\/strong> \u00e9s <strong>eltolni ki<\/strong> \u2013 bitek bitenk\u00e9nti fogad\u00e1sa \u00e9s tov\u00e1bb\u00edt\u00e1sa.<br \/>\n<strong>latch<\/strong> \u2013 egy z\u00e1r\u00f3elem, amely takarja a puffert, m\u00edg a bitek eltol\u00f3dnak rajta. Amikor a tov\u00e1bb\u00edt\u00e1s befejez\u0151dik, a z\u00e1r\u00f3elem kiny\u00edlik, a bitek aktiv\u00e1l\u00f3dnak.<br \/>\n<strong>clockolni be<\/strong> \u2013 bitenk\u00e9nti tov\u00e1bb\u00edt\u00e1st v\u00e9grehajtani, az \u00f6sszes bitet a megfelel\u0151 helyekre eltolni.<br \/>\n<strong>dupla puffert<\/strong>, <strong>\u00e1rny\u00e9k regiszter<\/strong>, <strong>el\u0151re bet\u00f6lt\u00f6tt regiszter<\/strong> \u2013 t\u00f6rt\u00e9net jelz\u00e9se, amikor a regiszternek \u00faj adatokat kell tudnia fogadni, de azokat el kell tartani egy bizonyos ideig. P\u00e9ld\u00e1ul ahhoz, hogy a PWM megfelel\u0151en m\u0171k\u00f6dj\u00f6n, a param\u00e9tereknek (kit\u00f6lt\u00e9si ar\u00e1ny, frekvencia) nem szabad v\u00e1ltozniuk, am\u00edg a jelenlegi ciklus be nem fejez\u0151dik, de az \u00faj param\u00e9terek m\u00e1r tov\u00e1bb\u00edthat\u00f3k. Ennek megfelel\u0151en a jelenlegi adatok a <em>\u00e1rny\u00e9k regiszter<\/em>, m\u00edg az \u00faj adatok a <em>el\u0151re bet\u00f6lt\u00f6tt regiszter<\/em>, ezzel a chip megfelel\u0151 regiszter\u00e9be r\u00f6gz\u00edtve.<\/p>\n<p><\/p>\n<p><em>Mindenf\u00e9le<\/em><br \/>\n<strong>el\u0151oszt\u00f3<\/strong> \u2013 frekvenciael\u0151oszt\u00f3<br \/>\n<strong>egy bitet be\u00e1ll\u00edtani<\/strong> \u2013 a bitet 1-re \u00e1ll\u00edtani<br \/>\n<strong>egy bitet t\u00f6r\u00f6lni \/ alaphelyzetbe \u00e1ll\u00edtani<\/strong> \u2013 a bitet 0-ra \u00e1ll\u00edtani (<em>reset<\/em> \u2013 STM adatlapok jelens\u00e9ge)<\/p>\n<p><\/p>\n<h3 id=\"chto-dalshe\">Mi k\u00f6vetkezik<\/h3>\n<p><\/p>\n<p>Itt eredetileg tervezett egy gyakorlati r\u00e9sz, amely h\u00e1rom STM32 \u00e9s STM8 projekt bemutat\u00e1s\u00e1t c\u00e9lozta, amelyeket kifejezetten ehhez a cikkhez k\u00e9sz\u00edtettek az adatlapok seg\u00edts\u00e9g\u00e9vel, l\u00e1mp\u00e1kkal, SPI-vel, id\u0151z\u00edt\u0151kkel, PWM-mel \u00e9s megszak\u00edt\u00e1sokkal:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9s mi\u00e9rt olvassunk adatlapokat, ha a mikrokontroller a hobbink\" src=\"\/wp-content\/uploads\/2019\/04\/8929bad65dad7473a81a221281c43557.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>De \u00edgy t\u00fal sok sz\u00f6veg keletkezik, ez\u00e9rt a projektek a m\u00e1sodik r\u00e9szbe ker\u00fclnek.<\/p>\n<p><\/p>\n<p>A datasheet olvas\u00e1s\u00e1nak k\u00e9pess\u00e9ge seg\u00edt a hobbidban, de aligha helyettes\u00edti a f\u00f3rumokon \u00e9s cseveg\u00e9sekben val\u00f3 \u00e9l\u0151 kommunik\u00e1ci\u00f3t a hasonl\u00f3 \u00e9rdekl\u0151d\u00e9s\u0171 koll\u00e9g\u00e1kkal. Ehhez mindenk\u00e9ppen el\u0151sz\u00f6r is az angolt kell fejlesztened. Ez\u00e9rt akik eljutottak id\u00e1ig, egy k\u00fcl\u00f6nleges aj\u00e1nd\u00e9kot kapnak: k\u00e9t ingyenes \u00f3r\u00e1t a Skyeng-n\u00e9l az els\u0151 befizet\u00e9ssel a k\u00f3d haszn\u00e1lat\u00e1val <code>HABR2<\/code>.<\/p>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/449624\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0438\u043a\u0440\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430 \u2013 \u043c\u043e\u0434\u043d\u043e\u0435 \u0443\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043b\u0435\u0442 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u043c\u0443 Arduino. \u041d\u043e \u0432\u043e\u0442 \u0431\u0435\u0434\u0430: \u043f\u0440\u0438 \u0434\u043e\u043b\u0436\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435 \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u0442\u0438 DigitalWrite() \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e, \u0430 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u2013 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u044f\u0441\u043d\u043e. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Arduino \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u0435\u043c\u0430\u043b\u043e \u0443\u0441\u0438\u043b\u0438\u0439 \u0434\u043b\u044f \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u043e\u0433\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 \u0441\u0432\u043e\u044e \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043d\u043e \u0437\u0430 \u0435\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u043b\u044b\u0448\u0435\u0442\u0441\u044f \u0442\u0435\u043c\u043d\u044b\u0439 \u043b\u0435\u0441 \u0441\u0443\u0440\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u043e\u0442\u0435\u0445\u043d\u0438\u043a\u0438, \u043c\u0430\u043b\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u044b. \u0412\u0440\u043e\u0434\u0435 \u0431\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-32463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0438\u043a\u0440\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u044b, \u0435\u0441\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u2013 \u0432\u0430\u0448\u0435 \u0445\u043e\u0431\u0431\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0438\u043a\u0440\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:47:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:47:12+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Hogyan \u00e9s mi\u00e9rt olvassunk datasheeteket, ha a mikrokontroller a hobbid | ProHoster","description":"Mikroelektronika.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u044b, \u0435\u0441\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u2013 \u0432\u0430\u0448\u0435 \u0445\u043e\u0431\u0431\u0438 | ProHoster","og:description":"\u041c\u0438\u043a\u0440\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430.","og:url":"https:\/\/prohoster.info\/hu\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:47:12+00:00","article:modified_time":"2019-10-31T18:47:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32463","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 11:00:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:58:24","updated":"2026-01-21 11:00:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/32463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=32463"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/32463\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/24267"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=32463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=32463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=32463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}