{"id":138,"date":"2019-09-07T16:46:19","date_gmt":"2019-09-07T16:46:19","guid":{"rendered":"http:\/\/www.linuxsystems.ovh\/?p=138"},"modified":"2020-05-25T16:28:22","modified_gmt":"2020-05-25T16:28:22","slug":"kalkulator-avr-na-atmedze8-komunikacja-przez-uart","status":"publish","type":"post","link":"https:\/\/www.linuxsystems.ovh\/?p=138","title":{"rendered":"Kalkulator AVR na Atmedze8 &#8211; komunikacja przez UART"},"content":{"rendered":"\n<p>Kalkulator AVR, kt\u00f3ry b\u0119dzie si\u0119 komunikowa\u0142 z komputerem za pomoc\u0105 UART.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Schemat naszego kalkulatora, kt\u00f3ry opar\u0142em na leciwej ju\u017c Atmedze 8, kt\u00f3r\u0105 znalaz\u0142em w swoim warsztacie:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"546\" height=\"419\" src=\"https:\/\/www.linuxsystems.ovh\/wp-content\/uploads\/2019\/09\/schematic.png\" alt=\"\" class=\"wp-image-139\" srcset=\"https:\/\/www.linuxsystems.ovh\/wp-content\/uploads\/2019\/09\/schematic.png 546w, https:\/\/www.linuxsystems.ovh\/wp-content\/uploads\/2019\/09\/schematic-300x230.png 300w\" sizes=\"auto, (max-width: 546px) 100vw, 546px\" \/><\/figure>\n\n\n\n<p>Jak wida\u0107, schemat jest bardzo prosty, po prostu pod\u0142\u0105czamy zasilanie do naszego mikrokontrolera, oraz n\u00f3\u017ck\u0119 RXD do TXD w naszym konwerterze RS232 &lt;-&gt; USB, oraz TXD do RXD w konwerterze RS232 &lt;-&gt; USB i to wszystko :).<\/p>\n\n\n\n<p>Kod \u017ar\u00f3d\u0142owy:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/liske310\/AVR_UART_Calculator\">https:\/\/github.com\/liske310\/AVR_UART_Calculator<\/a><\/p>\n\n\n\n<p>Dane wej\u015bciowe musz\u0105 wygl\u0105da\u0107 w nast\u0119puj\u0105cy spos\u00f3b:<br><strong>2<\/strong>[spacja]<strong>+<\/strong>[spacja]<strong>2<\/strong><br>Wtedy mikrokontroler zwr\u00f3ci nam poprawny wynik: <strong>4<\/strong><\/p>\n\n\n\n<p>Opis kodu \u017ar\u00f3d\u0142owego:<\/p>\n\n\n\n<p>Kod \u017ar\u00f3d\u0142owy korzysta z bardzo popularnej w sieci biblioteki UART od Peter Fleury i ca\u0142y czas oczekuje, a\u017c b\u0119d\u0105 dane wej\u015bciowe (funkcja<strong> get_uart_message()<\/strong> ). Nast\u0119pnie jak dane zostan\u0105 poprawnie odebrane, przechodzi do funkcji <strong>parse_data(char *data)<\/strong>, kt\u00f3ra parsuje nasze dane, kt\u00f3re otrzyma\u0142 mikrokontroler, dziel\u0105c \u0142a\u0144cuch znak\u00f3w na 3 zmienne: <strong>a<\/strong>, <strong>b<\/strong>, <strong>znak<\/strong>, zmienna <strong>a<\/strong> to 1-sza cyfra, <strong>b<\/strong> to 2-ga cyfra, a <strong>znak<\/strong> to znak dzia\u0142ania (obs\u0142uguje tylko dodawanie, odejmowanie, mno\u017cenie, dzielenie), nast\u0119pnie w zale\u017cno\u015bci od u\u017cytego znaku jest wykonywane dzia\u0142anie i jest wysy\u0142any wynik przez UART .<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kalkulator AVR, kt\u00f3ry b\u0119dzie si\u0119 komunikowa\u0142 z komputerem za pomoc\u0105 UART.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[],"class_list":["post-138","post","type-post","status-publish","format-standard","hentry","category-atmega"],"_links":{"self":[{"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=\/wp\/v2\/posts\/138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=138"}],"version-history":[{"count":3,"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=\/wp\/v2\/posts\/138\/revisions"}],"predecessor-version":[{"id":518,"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=\/wp\/v2\/posts\/138\/revisions\/518"}],"wp:attachment":[{"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxsystems.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}