{"id":94307,"date":"2021-03-15T19:16:11","date_gmt":"2021-03-15T13:16:11","guid":{"rendered":"http:\/\/rcl-radio.ru\/?p=94307"},"modified":"2022-01-08T11:47:09","modified_gmt":"2022-01-08T05:47:09","slug":"attiny2313-%d1%8d%d0%bd%d0%ba%d0%be%d0%b4%d0%b5%d1%80","status":"publish","type":"post","link":"http:\/\/rcl-radio.ru\/?p=94307","title":{"rendered":"ATtiny2313 + \u044d\u043d\u043a\u043e\u0434\u0435\u0440"},"content":{"rendered":"<table style=\"height: 325px;\" border=\"1\" width=\"761\">\n<tbody>\n<tr>\n<td style=\"width: 254px;\">\n<p style=\"text-align: center;\"><strong>KY-040<\/strong><\/p>\n<p><a class=\"highslide-image\" href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/08\/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2020-08-24-163629.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-83119\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/08\/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2020-08-24-163629.png\" sizes=\"auto, (max-width: 186px) 100vw, 186px\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/08\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2020-08-24-163629.png 436w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/08\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2020-08-24-163629-200x212.png 200w\" alt=\"\" width=\"186\" height=\"197\" \/><\/a><\/td>\n<td style=\"width: 491px;\"><a class=\"highslide-image\" href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/08\/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2020-08-24-164156.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-83120\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/08\/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2020-08-24-164156.png\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/08\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2020-08-24-164156.png 360w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/08\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2020-08-24-164156-200x164.png 200w\" alt=\"\" width=\"360\" height=\"295\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u042d\u043d\u043a\u043e\u0434\u0435\u0440\u044b KY-040 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. KY-040 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u044d\u043d\u043a\u043e\u0434\u0435\u0440 \u0438 3 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0449\u0438\u0445 (\u043a +5 \u0412) \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430 \u043d\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u043c 10 \u043a\u041e\u043c. \u041f\u0440\u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0440\u0443\u0447\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0432\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 (A \u0438 B), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u044b \u043f\u043e \u0444\u0430\u0437\u0435.\u00a0 \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0441\u0438\u0433\u043d\u0430\u043b \u0410 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043e\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043a \u043d\u0443\u043b\u044e, \u043c\u044b \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0412. \u0415\u0441\u043b\u0438 \u0412 \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u0437\u043d\u0430\u0447\u0438\u0442 \u044d\u043d\u043a\u043e\u0434\u0435\u0440 \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0435, \u0435\u0441\u043b\u0438 \u0412 \u043d\u0443\u043b\u044c, \u0442\u043e \u044d\u043d\u043a\u043e\u0434\u0435\u0440 \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438. \u0421\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043e\u0431\u0430 \u0432\u044b\u0445\u043e\u0434\u0430, \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f, \u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043e\u0432 \u0441 \u0410 \u0432\u044b\u0445\u043e\u0434\u0430 \u2014 \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430.<\/p>\n<p>\u0427\u0442\u043e \u0431\u044b \u0431\u0435\u0437\u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c (\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c) \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 A \u0438 B\u00a0 (CLK \u0438 DT) \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u043a\u0435\u0442\u0447\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u043f\u0435\u0440\u0438\u043e\u0434 \u043e\u043f\u0440\u043e\u0441\u0430. \u042d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u043f\u0443\u0442\u044f\u043c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0430\u0439\u043c\u0435\u0440\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430 \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0435\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0430\u0439\u043c\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0446\u0435\u043b\u0435\u0439. \u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u044b ATtiny2313 \u0434\u043b\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f PCINT0\u20267. (<a href=\"http:\/\/rcl-radio.ru\/?p=94285\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f\u043c\u0438 PCINT0\u20267<\/a>)<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2021-03-01-235639.png\" \/><\/p>\n<p>\u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043a\u0435\u0442\u0447 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043c\u043e\u0434\u0443\u043b\u044c \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 TM1637 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 4-\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0439 \u0441\u0435\u043c\u0438\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0439 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 TM1637. \u041d\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430.<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td><a class=\"highslide-image\" href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/02\/Screenshot-21.02.2020-100758.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-75893 size-full\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/02\/Screenshot-21.02.2020-100758-e1582258554732.png\" sizes=\"auto, (max-width: 424px) 100vw, 424px\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/02\/Screenshot-21.02.2020-100758-e1582258554732.png 424w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/02\/Screenshot-21.02.2020-100758-e1582258554732-200x104.png 200w\" alt=\"\" width=\"424\" height=\"221\" \/><\/a><\/td>\n<td><a class=\"highslide-image\" href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/02\/Screenshot-21.02.2020-100812.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-75894 size-full\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/02\/Screenshot-21.02.2020-100812-e1582258576131.png\" sizes=\"auto, (max-width: 452px) 100vw, 452px\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/02\/Screenshot-21.02.2020-100812-e1582258576131.png 452w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2020\/02\/Screenshot-21.02.2020-100812-e1582258576131-200x103.png 200w\" alt=\"\" width=\"452\" height=\"232\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0445\u0435\u043c\u0443:<\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-183440.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-94308\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-183440.png\" alt=\"\" width=\"718\" height=\"345\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-183440.png 718w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-183440-200x96.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-183440-500x240.png 500w\" sizes=\"auto, (max-width: 718px) 100vw, 718px\" \/><\/a><\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0441\u043a\u0435\u0442\u0447\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0441\u043e \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u2014\u00a0<a href=\"http:\/\/rcl-radio.ru\/?p=94074\">ATtiny2313 + Arduino IDE<\/a><\/p>\n<div id=\"marketWidget\"><\/div>\n<pre class=\"actionscript\" style=\"font-family: monospace; font-size: 10px;\">volatile uint8_t _prevValueAB = <span style=\"color: #cc66cc;\">0<\/span>;    \r\nvolatile uint8_t _currValueAB = <span style=\"color: #cc66cc;\">0<\/span>;\r\nvolatile int16_t _counter = <span style=\"color: #cc66cc;\">0<\/span>;\r\n<span style=\"color: #0066cc;\">int<\/span> <span style=\"color: #0066cc;\">position<\/span> = -<span style=\"color: #cc66cc;\">999<\/span>;\r\n<span style=\"color: #0066cc;\">int<\/span> encoder;\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> setup<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">|<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  GIMSK <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> PCIE<span style=\"color: #66cc66;\">)<\/span>; \r\n  PCMSK <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> PCINT2<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">|<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> PCINT3<span style=\"color: #66cc66;\">)<\/span>; \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> loop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>  \r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>getPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>= <span style=\"color: #0066cc;\">position<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #0066cc;\">position<\/span> = getPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    encoder = encoder+getPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;setPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>encoder<span style=\"color: #66cc66;\">&gt;<\/span>=<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>print_time<span style=\"color: #66cc66;\">(<\/span>encoder, <span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">7<\/span>, <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>encoder<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>print_time<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">abs<\/span><span style=\"color: #66cc66;\">(<\/span>encoder<span style=\"color: #66cc66;\">)<\/span>, <span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">7<\/span>, <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/ encoder \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\nISR<span style=\"color: #66cc66;\">(<\/span>PCINT_vect<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n  bool pinA = <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  bool pinB = <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   _currValueAB  = pinA <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span>;\r\n   _currValueAB <span style=\"color: #66cc66;\">|<\/span>= pinB;\r\n   <span style=\"color: #b1b100;\">switch<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>_prevValueAB <span style=\"color: #66cc66;\">|<\/span> _currValueAB<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">case<\/span> 0b0001: _counter++;<span style=\"color: #b1b100;\">break<\/span>;\r\n    <span style=\"color: #b1b100;\">case<\/span> 0b0100: _counter--;<span style=\"color: #b1b100;\">break<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n  _prevValueAB = _currValueAB <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">2<\/span>;     \r\n  <span style=\"color: #66cc66;\">}<\/span> \r\n\u00a0\r\nint16_t getPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">return<\/span> _counter;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> setPosition<span style=\"color: #66cc66;\">(<\/span>int16_t <span style=\"color: #0066cc;\">position<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  _counter = <span style=\"color: #0066cc;\">position<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/\/\/\/\/ tm \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ <\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> tm_dec<span style=\"color: #66cc66;\">(<\/span>byte dig<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">for<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">int<\/span> i = <span style=\"color: #cc66cc;\">0<\/span>; i <span style=\"color: #66cc66;\">&lt;<\/span> <span style=\"color: #cc66cc;\">8<\/span>; i++<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>dig <span style=\"color: #66cc66;\">&amp;<\/span> 0x01<span style=\"color: #66cc66;\">)<\/span> DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">else<\/span> DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    dig = dig <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> == <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> tm_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n  DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> tm_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n  DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> print_time<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">int<\/span> t, byte pd_t, <span style=\"color: #0066cc;\">int<\/span> br, byte mn<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n  tm_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>0b10001000 + br<span style=\"color: #66cc66;\">)<\/span>; <span style=\"color: #808080; font-style: italic;\">\/\/tm_stop();tm_start();<\/span>\r\n  tm_dec<span style=\"color: #66cc66;\">(<\/span>0x40<span style=\"color: #66cc66;\">)<\/span>; tm_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>; tm_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n\u00a0\r\n  <span style=\"color: #0066cc;\">int<\/span> data0;\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>mn==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>data0 = <span style=\"color: #cc66cc;\">10<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>mn==<span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>data0 = <span style=\"color: #cc66cc;\">11<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">else<\/span> data0 = t <span style=\"color: #66cc66;\">\/<\/span> <span style=\"color: #cc66cc;\">1000<\/span>;\r\n  <span style=\"color: #0066cc;\">int<\/span> data1 = t <span style=\"color: #66cc66;\">\/<\/span> <span style=\"color: #cc66cc;\">100<\/span> <span style=\"color: #66cc66;\">%<\/span> <span style=\"color: #cc66cc;\">10<\/span>;\r\n  <span style=\"color: #0066cc;\">int<\/span> data2 = t <span style=\"color: #66cc66;\">\/<\/span> <span style=\"color: #cc66cc;\">10<\/span> <span style=\"color: #66cc66;\">%<\/span> <span style=\"color: #cc66cc;\">10<\/span>;\r\n  <span style=\"color: #0066cc;\">int<\/span> data3 = t <span style=\"color: #66cc66;\">%<\/span> <span style=\"color: #cc66cc;\">10<\/span>;\r\n\u00a0\r\n  <span style=\"color: #b1b100;\">for<\/span> <span style=\"color: #66cc66;\">(<\/span>byte n = <span style=\"color: #cc66cc;\">0<\/span>; n <span style=\"color: #66cc66;\">&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span>; n++<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #0066cc;\">int<\/span> <span style=\"color: #0066cc;\">data<\/span>;\r\n    <span style=\"color: #b1b100;\">switch<\/span> <span style=\"color: #66cc66;\">(<\/span>n<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">0<\/span>: <span style=\"color: #0066cc;\">data<\/span> = data0; <span style=\"color: #b1b100;\">break<\/span>;\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">1<\/span>: <span style=\"color: #0066cc;\">data<\/span> = data1; <span style=\"color: #b1b100;\">break<\/span>;\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">2<\/span>: <span style=\"color: #0066cc;\">data<\/span> = data2; <span style=\"color: #b1b100;\">break<\/span>;\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">3<\/span>: <span style=\"color: #0066cc;\">data<\/span> = data3; <span style=\"color: #b1b100;\">break<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n    <span style=\"color: #b1b100;\">switch<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>  <span style=\"color: #808080; font-style: italic;\">\/\/ XGFEDCBA<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">0<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b00111111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 0<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">1<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b00000110; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 1<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">2<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01011011; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 2<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">3<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01001111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 3<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">4<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01100110; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 4<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">5<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01101101; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 5<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">6<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01111101; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 6<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">7<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b00000111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 7<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">8<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01111111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 8<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">9<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01101111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 9<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">10<\/span>: <span style=\"color: #0066cc;\">data<\/span> = 0b00000000; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ \u043f\u0443\u0441\u0442\u043e<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">11<\/span>: <span style=\"color: #0066cc;\">data<\/span> = 0b01000000; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ -<\/span>\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>n == <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>data0 = <span style=\"color: #0066cc;\">data<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>n == <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>data1 = <span style=\"color: #0066cc;\">data<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>n == <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>data2 = <span style=\"color: #0066cc;\">data<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>n == <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>data3 = <span style=\"color: #0066cc;\">data<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">switch<\/span> <span style=\"color: #66cc66;\">(<\/span>pd_t<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">1<\/span> : data2 = data2 + 0b10000000; <span style=\"color: #b1b100;\">break<\/span>;\r\n    <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">2<\/span> : data1 = data1 + 0b10000000; <span style=\"color: #b1b100;\">break<\/span>;\r\n    <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">3<\/span> : data0 = data0 + 0b10000000; <span style=\"color: #b1b100;\">break<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n  tm_dec<span style=\"color: #66cc66;\">(<\/span>0xC0<span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>data0<span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>data1<span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>data2<span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>data3<span style=\"color: #66cc66;\">)<\/span>; tm_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">200<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><\/pre>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/2cc991fac9fc12b16fd6dab37e051360.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-94309\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/2cc991fac9fc12b16fd6dab37e051360.png\" alt=\"\" width=\"380\" height=\"168\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/2cc991fac9fc12b16fd6dab37e051360.png 380w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/2cc991fac9fc12b16fd6dab37e051360-200x88.png 200w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><\/a><\/td>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/823f2063858b09fa234e6dc74149b205.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-94310\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/823f2063858b09fa234e6dc74149b205.png\" alt=\"\" width=\"368\" height=\"181\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/823f2063858b09fa234e6dc74149b205.png 368w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/823f2063858b09fa234e6dc74149b205-200x98.png 200w\" sizes=\"auto, (max-width: 368px) 100vw, 368px\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0414\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432\u0445\u043e\u0434\u044b \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f PCINT2 \u0438 PCINT3, \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0445\u043e\u0434\u0430\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 PB2 \u0438 PB3:<\/p>\n<p>PCMSK <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> PCINT2<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">|<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> PCINT3<span style=\"color: #66cc66;\">)<\/span>;<\/p>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f <strong>PCINT_vect\u00a0<\/strong>\u043f\u0440\u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0435 \u0440\u0443\u0447\u043a\u0438 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430 CLK \u0438 DT, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u0434\u0432\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 (A \u0438 B).<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f getPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)\u00a0<\/span>\u0432\u044b\u0434\u0430\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430, \u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f setPosition<span style=\"color: #66cc66;\">(<\/span>int16_t <span style=\"color: #0066cc;\">position<\/span><span style=\"color: #66cc66;\">) <\/span>\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 ATtiny2313 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0435\u0440\u043c\u043e\u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440. \u0412 \u0442\u0435\u0440\u043c\u043e\u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0434\u0430\u0442\u0447\u0438\u043a \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b DS18B20, \u044d\u043d\u043a\u043e\u0434\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-190823.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-94311\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-190823.png\" alt=\"\" width=\"743\" height=\"451\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-190823.png 743w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-190823-200x121.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-190823-500x303.png 500w\" sizes=\"auto, (max-width: 743px) 100vw, 743px\" \/><\/a><\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0442\u0435\u0440\u043c\u043e\u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u0430:<\/p>\n<ul>\n<li>\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u043c\u044b\u0445 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440 \u043e\u0442 0 \u0434\u043e 125 \u00b0\u0421<\/li>\n<li>\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b\u00a0\u043e\u0442 0 \u0434\u043e 125 \u00b0\u0421<\/li>\n<li>\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b 5 \u0441\u0435\u043a\u0443\u043d\u0434<\/li>\n<li>\u0413\u0438\u0441\u0442\u0435\u0440\u0435\u0437\u0438\u0441 0,1 \u00b0\u0421 (\u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u0441\u043a\u0435\u0442\u0447\u0435)<\/li>\n<li>\u0428\u0430\u0433 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0438 \u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b 0,1 \u00b0\u0421<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0442\u0435\u0440\u043c\u043e\u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 5 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0434\u0430\u043b\u0435\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u043c\u0430\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430. \u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430, \u0442\u043e \u0441\u043d\u043e\u0432\u0430 \u043d\u0430 5 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0440\u0443\u0447\u043a\u0443 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u044d\u043d\u0435\u0440\u0433\u043e\u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c. \u0412\u044b\u0445\u043e\u0434 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 PD5 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0433\u0440\u0435\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c.<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/3e6a0bdacc1d022ba34cdd5ef55424cc.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-94313\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/3e6a0bdacc1d022ba34cdd5ef55424cc.png\" alt=\"\" width=\"182\" height=\"92\" \/><\/a><\/td>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/e9f12ef1ac8265cffaa0027b9b90996d.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-94312\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/e9f12ef1ac8265cffaa0027b9b90996d.png\" alt=\"\" width=\"146\" height=\"71\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre class=\"actionscript\" style=\"font-family: monospace; font-size: 10px;\">byte bb,w;\r\nvolatile uint8_t _prevValueAB = <span style=\"color: #cc66cc;\">0<\/span>;    \r\nvolatile uint8_t _currValueAB = <span style=\"color: #cc66cc;\">0<\/span>;\r\nvolatile int16_t _counter = <span style=\"color: #cc66cc;\">0<\/span>;\r\n<span style=\"color: #0066cc;\">int<\/span> <span style=\"color: #0066cc;\">position<\/span> = -<span style=\"color: #cc66cc;\">999<\/span>;\r\n<span style=\"color: #0066cc;\">int<\/span> t_reg,t_dig;\r\nunsigned long time_i=<span style=\"color: #cc66cc;\">0<\/span>,time_i2=<span style=\"color: #cc66cc;\">0<\/span>,time_i3=<span style=\"color: #cc66cc;\">0<\/span>;\r\nconst <span style=\"color: #0066cc;\">int<\/span> gis = <span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #808080; font-style: italic;\">\/\/0.1 \u0433\u0440. \u0426\u0435\u043b\u044c\u0441\u0438\u044f<\/span>\r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> setup<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  cli<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/ timer 1 \/\/\/\/\/\/\/\/\/\/  <\/span>\r\n  TCCR1A = <span style=\"color: #cc66cc;\">0<\/span>;   \r\n  TCCR1B = <span style=\"color: #cc66cc;\">0<\/span>;   \r\n  OCR1A = <span style=\"color: #cc66cc;\">18750<\/span>; <span style=\"color: #808080; font-style: italic;\">\/\/ 0.1 s<\/span>\r\n  TCCR1B <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> WGM12<span style=\"color: #66cc66;\">)<\/span>; \r\n  TCCR1B <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> CS11<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">|<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> CS10<span style=\"color: #66cc66;\">)<\/span>;  <span style=\"color: #808080; font-style: italic;\">\/\/ 64  <\/span>\r\n  TIMSK <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OCIE1A<span style=\"color: #66cc66;\">)<\/span>;  \r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/  <\/span>\r\n  DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">|<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  DDRD <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  DDRD <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  GIMSK <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> PCIE<span style=\"color: #66cc66;\">)<\/span>; \r\n  PCMSK <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> PCINT2<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">|<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> PCINT3<span style=\"color: #66cc66;\">)<\/span>; \r\n  t_reg = EEPROM_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">*<\/span><span style=\"color: #cc66cc;\">10<\/span>+EEPROM_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  sei<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> loop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n     <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PIND <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> == <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>time_i2=<span style=\"color: #cc66cc;\">0<\/span>;time_i3=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>getPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>= <span style=\"color: #0066cc;\">position<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #0066cc;\">position<\/span> = getPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    t_reg = t_reg+getPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;setPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;w=<span style=\"color: #cc66cc;\">1<\/span>;time_i=<span style=\"color: #cc66cc;\">0<\/span>;time_i2=<span style=\"color: #cc66cc;\">0<\/span>;time_i3=<span style=\"color: #cc66cc;\">0<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>t_reg<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>t_reg=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>t_reg<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">1250<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>t_reg=<span style=\"color: #cc66cc;\">1250<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>time_i2<span style=\"color: #66cc66;\">&lt;<\/span>=<span style=\"color: #cc66cc;\">50<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>t_reg<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">999<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>print_time<span style=\"color: #66cc66;\">(<\/span>t_reg, <span style=\"color: #cc66cc;\">1<\/span>, <span style=\"color: #cc66cc;\">7<\/span>, <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">else<\/span><span style=\"color: #66cc66;\">{<\/span>print_time<span style=\"color: #66cc66;\">(<\/span>t_reg, <span style=\"color: #cc66cc;\">1<\/span>, <span style=\"color: #cc66cc;\">7<\/span>, <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>time_i3<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">50<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>t_dig = read_temp<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;time_i3=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>w==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&amp;&amp;<\/span>time_i<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">50<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>w=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM_write<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,t_reg<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;EEPROM_write<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span>,t_reg<span style=\"color: #66cc66;\">%<\/span>10<span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">100<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>time_i2<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">50<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>t_dig<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">999<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>print_time<span style=\"color: #66cc66;\">(<\/span>t_dig, <span style=\"color: #cc66cc;\">1<\/span>, <span style=\"color: #cc66cc;\">7<\/span>, <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">else<\/span><span style=\"color: #66cc66;\">{<\/span>print_time<span style=\"color: #66cc66;\">(<\/span>t_dig, <span style=\"color: #cc66cc;\">1<\/span>, <span style=\"color: #cc66cc;\">7<\/span>, <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>t_reg <span style=\"color: #66cc66;\">&gt;<\/span>= t_dig + gis<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>PORTD <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>t_reg <span style=\"color: #66cc66;\">&lt;<\/span>= t_dig - gis<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>PORTD <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/ encoder \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\nISR<span style=\"color: #66cc66;\">(<\/span>PCINT_vect<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n  bool pinA = <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  bool pinB = <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   _currValueAB  = pinA <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span>;\r\n   _currValueAB <span style=\"color: #66cc66;\">|<\/span>= pinB;\r\n   <span style=\"color: #b1b100;\">switch<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>_prevValueAB <span style=\"color: #66cc66;\">|<\/span> _currValueAB<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">case<\/span> 0b0001: _counter++;<span style=\"color: #b1b100;\">break<\/span>;\r\n    <span style=\"color: #b1b100;\">case<\/span> 0b0100: _counter--;<span style=\"color: #b1b100;\">break<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n  _prevValueAB = _currValueAB <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">2<\/span>;     \r\n  <span style=\"color: #66cc66;\">}<\/span> \r\n\u00a0\r\nint16_t getPosition<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">return<\/span> _counter;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> setPosition<span style=\"color: #66cc66;\">(<\/span>int16_t <span style=\"color: #0066cc;\">position<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  _counter = <span style=\"color: #0066cc;\">position<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/\/\/\/\/ tm \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ <\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> tm_dec<span style=\"color: #66cc66;\">(<\/span>byte dig<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">for<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">int<\/span> i = <span style=\"color: #cc66cc;\">0<\/span>; i <span style=\"color: #66cc66;\">&lt;<\/span> <span style=\"color: #cc66cc;\">8<\/span>; i++<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>dig <span style=\"color: #66cc66;\">&amp;<\/span> 0x01<span style=\"color: #66cc66;\">)<\/span> DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">else<\/span> DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    dig = dig <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> == <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> tm_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n  DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> tm_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n  DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> print_time<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">int<\/span> t, byte pd_t, <span style=\"color: #0066cc;\">int<\/span> br, byte mn<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n  tm_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>0b10001000 + br<span style=\"color: #66cc66;\">)<\/span>; <span style=\"color: #808080; font-style: italic;\">\/\/tm_stop();tm_start();<\/span>\r\n  tm_dec<span style=\"color: #66cc66;\">(<\/span>0x40<span style=\"color: #66cc66;\">)<\/span>; tm_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>; tm_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n\u00a0\r\n  <span style=\"color: #0066cc;\">int<\/span> data0;\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>mn==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>data0 = <span style=\"color: #cc66cc;\">10<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>mn==<span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>data0 = <span style=\"color: #cc66cc;\">11<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">else<\/span> data0 = t <span style=\"color: #66cc66;\">\/<\/span> <span style=\"color: #cc66cc;\">1000<\/span>;\r\n  <span style=\"color: #0066cc;\">int<\/span> data1 = t <span style=\"color: #66cc66;\">\/<\/span> <span style=\"color: #cc66cc;\">100<\/span> <span style=\"color: #66cc66;\">%<\/span> <span style=\"color: #cc66cc;\">10<\/span>;\r\n  <span style=\"color: #0066cc;\">int<\/span> data2 = t <span style=\"color: #66cc66;\">\/<\/span> <span style=\"color: #cc66cc;\">10<\/span> <span style=\"color: #66cc66;\">%<\/span> <span style=\"color: #cc66cc;\">10<\/span>;\r\n  <span style=\"color: #0066cc;\">int<\/span> data3 = t <span style=\"color: #66cc66;\">%<\/span> <span style=\"color: #cc66cc;\">10<\/span>;\r\n\u00a0\r\n  <span style=\"color: #b1b100;\">for<\/span> <span style=\"color: #66cc66;\">(<\/span>byte n = <span style=\"color: #cc66cc;\">0<\/span>; n <span style=\"color: #66cc66;\">&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span>; n++<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #0066cc;\">int<\/span> <span style=\"color: #0066cc;\">data<\/span>;\r\n    <span style=\"color: #b1b100;\">switch<\/span> <span style=\"color: #66cc66;\">(<\/span>n<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">0<\/span>: <span style=\"color: #0066cc;\">data<\/span> = data0; <span style=\"color: #b1b100;\">break<\/span>;\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">1<\/span>: <span style=\"color: #0066cc;\">data<\/span> = data1; <span style=\"color: #b1b100;\">break<\/span>;\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">2<\/span>: <span style=\"color: #0066cc;\">data<\/span> = data2; <span style=\"color: #b1b100;\">break<\/span>;\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">3<\/span>: <span style=\"color: #0066cc;\">data<\/span> = data3; <span style=\"color: #b1b100;\">break<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n    <span style=\"color: #b1b100;\">switch<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>  <span style=\"color: #808080; font-style: italic;\">\/\/ XGFEDCBA<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">0<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b00111111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 0<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">1<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b00000110; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 1<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">2<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01011011; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 2<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">3<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01001111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 3<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">4<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01100110; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 4<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">5<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01101101; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 5<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">6<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01111101; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 6<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">7<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b00000111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 7<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">8<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01111111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 8<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">9<\/span>:  <span style=\"color: #0066cc;\">data<\/span> = 0b01101111; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ 9<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">10<\/span>: <span style=\"color: #0066cc;\">data<\/span> = 0b00000000; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ \u043f\u0443\u0441\u0442\u043e<\/span>\r\n      <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">11<\/span>: <span style=\"color: #0066cc;\">data<\/span> = 0b01000000; <span style=\"color: #b1b100;\">break<\/span>;    <span style=\"color: #808080; font-style: italic;\">\/\/ -<\/span>\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>n == <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>data0 = <span style=\"color: #0066cc;\">data<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>n == <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>data1 = <span style=\"color: #0066cc;\">data<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>n == <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>data2 = <span style=\"color: #0066cc;\">data<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>n == <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>data3 = <span style=\"color: #0066cc;\">data<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">switch<\/span> <span style=\"color: #66cc66;\">(<\/span>pd_t<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">1<\/span> : data2 = data2 + 0b10000000; <span style=\"color: #b1b100;\">break<\/span>;\r\n    <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">2<\/span> : data1 = data1 + 0b10000000; <span style=\"color: #b1b100;\">break<\/span>;\r\n    <span style=\"color: #b1b100;\">case<\/span> <span style=\"color: #cc66cc;\">3<\/span> : data0 = data0 + 0b10000000; <span style=\"color: #b1b100;\">break<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n  tm_dec<span style=\"color: #66cc66;\">(<\/span>0xC0<span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>data0<span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>data1<span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>data2<span style=\"color: #66cc66;\">)<\/span>; tm_dec<span style=\"color: #66cc66;\">(<\/span>data3<span style=\"color: #66cc66;\">)<\/span>; tm_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">200<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/\/\/ eeprom \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\nunsigned char EEPROM_read<span style=\"color: #66cc66;\">(<\/span>unsigned <span style=\"color: #0066cc;\">int<\/span> uiAddress<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">while<\/span><span style=\"color: #66cc66;\">(<\/span>EECR <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>EEPE<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    EEAR = uiAddress;\r\n    EECR <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>EERE<span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">return<\/span> EEDR;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> EEPROM_write<span style=\"color: #66cc66;\">(<\/span>unsigned <span style=\"color: #0066cc;\">int<\/span> uiAddress, unsigned char ucData<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">while<\/span><span style=\"color: #66cc66;\">(<\/span>EECR <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>EEPE<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n      EEAR = uiAddress;\r\n      EEDR = ucData;\r\n      EECR <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>EEMPE<span style=\"color: #66cc66;\">)<\/span>;\r\n      EECR <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>EEPE<span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span> \r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/\/\/\/\/ timer 1 \/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\nISR<span style=\"color: #66cc66;\">(<\/span>TIMER1_COMPA_vect<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>time_i++; time_i2++;time_i3++;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/\/\/\/\/\/ 18b20 \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\nuint8_t therm_reset<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t i;\r\n    PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">480<\/span><span style=\"color: #66cc66;\">)<\/span>;  \r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">60<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    i=<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">420<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">return<\/span> i;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ write bit<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> therm_write_bit<span style=\"color: #66cc66;\">(<\/span>uint8_t bit<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>bit<span style=\"color: #66cc66;\">)<\/span> DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">60<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ read bit<\/span>\r\nuint8_t therm_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">void<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t bit=<span style=\"color: #cc66cc;\">0<\/span>;\r\n    PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">14<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span> bit=<span style=\"color: #cc66cc;\">1<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">45<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">return<\/span> bit;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ read byte<\/span>\r\nuint8_t therm_read_byte<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">void<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t i=<span style=\"color: #cc66cc;\">8<\/span>, n=<span style=\"color: #cc66cc;\">0<\/span>;\r\n    <span style=\"color: #b1b100;\">while<\/span><span style=\"color: #66cc66;\">(<\/span>i--<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>n<span style=\"color: #66cc66;\">&gt;&gt;<\/span>=<span style=\"color: #cc66cc;\">1<\/span>;n<span style=\"color: #66cc66;\">|<\/span>=<span style=\"color: #66cc66;\">(<\/span>therm_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">return<\/span> n;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ write byte<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> therm_write_byte<span style=\"color: #66cc66;\">(<\/span>uint8_t byte<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t i=<span style=\"color: #cc66cc;\">8<\/span>;\r\n    <span style=\"color: #b1b100;\">while<\/span><span style=\"color: #66cc66;\">(<\/span>i--<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>therm_write_bit<span style=\"color: #66cc66;\">(<\/span>byte<span style=\"color: #66cc66;\">&amp;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;byte <span style=\"color: #66cc66;\">&gt;&gt;<\/span>= <span style=\"color: #cc66cc;\">1<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ read temp<\/span>\r\n<span style=\"color: #0066cc;\">int<\/span> read_temp<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">]<\/span>;\r\n    <span style=\"color: #0066cc;\">int<\/span> temper;\r\n    therm_reset<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_write_byte<span style=\"color: #66cc66;\">(<\/span>0xCC<span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_write_byte<span style=\"color: #66cc66;\">(<\/span>0x44<span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">while<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">!<\/span>therm_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_reset<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_write_byte<span style=\"color: #66cc66;\">(<\/span>0xCC<span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_write_byte<span style=\"color: #66cc66;\">(<\/span>0xBE<span style=\"color: #66cc66;\">)<\/span>;\r\n    temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">]<\/span>=therm_read_byte<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">]<\/span>=therm_read_byte<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_reset<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    temper = <span style=\"color: #66cc66;\">(<\/span>temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">]<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">8<\/span> <span style=\"color: #66cc66;\">|<\/span> temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">]<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">*<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">16<\/span>;\r\n    <span style=\"color: #b1b100;\">return<\/span>\u00a0temper;\r\n<span style=\"color: #66cc66;\">}<\/span><\/pre>\n<blockquote><p>\u0421\u043a\u0435\u0442\u0447 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 1802 \u0431\u0430\u0439\u0442 (87%) \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0412\u0441\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e 2048 \u0431\u0430\u0439\u0442.<br \/>\n\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 32 \u0431\u0430\u0439\u0442 (25%) \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f 96 \u0431\u0430\u0439\u0442 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c: 128 \u0431\u0430\u0439\u0442.<\/p>\n<p>\u0412\u0435\u0440\u0441\u0438\u044f \u043f\u043b\u0430\u0442\u044b \u0432 Arduino IDE 1.2.5<\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-192106.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-94318\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-192106.png\" alt=\"\" width=\"447\" height=\"237\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-192106.png 447w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-03-15-192106-200x106.png 200w\" sizes=\"auto, (max-width: 447px) 100vw, 447px\" \/><\/a><\/p>\n<p>\u0424\u043e\u0440\u0443\u043c &#8212;<a href=\"http:\/\/forum.rcl-radio.ru\/viewtopic.php?id=285\"> http:\/\/forum.rcl-radio.ru\/viewtopic.php?id=285<\/a><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>KY-040 \u042d\u043d\u043a\u043e\u0434\u0435\u0440\u044b KY-040 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. KY-040 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u044d\u043d\u043a\u043e\u0434\u0435\u0440 \u0438 3 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0449\u0438\u0445 (\u043a +5 \u0412) \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430 \u043d\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u043c 10 \u043a\u041e\u043c. \u041f\u0440\u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0440\u0443\u0447\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0432\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 (A \u0438 B), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u044b \u043f\u043e \u0444\u0430\u0437\u0435.\u00a0 \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0441\u0438\u0433\u043d\u0430\u043b \u0410 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":94314,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[239,286],"tags":[],"class_list":["post-94307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-attiny2313-arduino-ide"],"views":6586,"_links":{"self":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/94307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=94307"}],"version-history":[{"count":8,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/94307\/revisions"}],"predecessor-version":[{"id":111146,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/94307\/revisions\/111146"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/media\/94314"}],"wp:attachment":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=94307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=94307"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=94307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}