{"id":255288,"date":"2015-04-15T15:49:02","date_gmt":"2015-04-15T11:49:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=255288"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=255288","title":{"rendered":"\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0441 STM32 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u041a1986\u0412\u041592QI. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0437\u0432\u0443\u043a. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f: \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u0438 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b. \u041e\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u0426\u0410\u041f (DAC)"},"content":{"rendered":"<br \/>\n<h4>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435.<\/h4>\n<p>  <a href=\"http:\/\/habrahabr.ru\/post\/255479\/\">\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0437\u0432\u0443\u043a\u043e\u043c: \u0435\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u041f\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u0432\u0441\u0435. \u041e\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043e\u0432 \u0434\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f FLAC \u0441 microSD \u043a\u0430\u0440\u0442\u044b. \u041d\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u043e\u0439. \u0422\u0430\u043a \u0447\u0442\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0435\u0435 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u043f\u043e\u043c\u0435\u043d\u044c\u0448\u0435. \u0412 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e. <br \/>  <a name=\"habracut\"><\/a><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u044f\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435.<\/b><\/p>\n<div class=\"spoiler_text\">\u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c. \u0420\u0435\u0448\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u044f \u0431\u0443\u0434\u0443 \u043b\u0438\u0448\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0435\u0445 \u0437\u043d\u0430\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u044b. \u042f \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u0447\u0442\u043e \u0433\u0434\u0435-\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u0435\u0440\u043d\u044b\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 DMA, \u0433\u0434\u0435-\u0442\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u0432, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041d\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u0434\u0430\u043b\u0435\u0435.   <\/div>\n<\/div>\n<h4>\u041e\u0431\u0449\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430.<\/h4>\n<p>  \u0414\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u044f \u0438\u043c\u0435\u043b \u043b\u0438\u0448\u044c \u0441\u043c\u0443\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0432\u0443\u043a\u0430, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f <a href=\"http:\/\/avr-start.ru\/?p=476\">\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438<\/a> \u0432\u0441\u0435 \u0432\u0441\u0442\u0430\u043b\u043e \u043d\u0430 \u0441\u0432\u043e\u0438 \u043c\u0435\u0441\u0442\u0430. \u0418\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043f\u0440\u0438\u043d\u0446\u0438\u043f.  <\/p>\n<blockquote><p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0432\u0443\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043b\u0435\u0431\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u043c\u0431\u0440\u0430\u043d\u0443 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0430 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439. \u041a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0442\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0432\u043e\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u043e\u0442\u0435 \u0414\u043e 1 \u043e\u043a\u0442\u0430\u0432\u044b, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 261\u0413\u0446. \u0422.\u0435. \u0434\u0440\u044b\u0433\u0430\u044f \u043d\u043e\u0433\u043e\u0439 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u043a \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443, \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 261 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043b\u044b\u0448\u0430\u0442\u044c \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043d\u043e\u0442\u044b. \u0414\u043b\u044f \u0442\u0435\u0445 \u043a\u0442\u043e \u043d\u0435 \u0441\u0438\u043b\u0435\u043d \u0432 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438, \u0437\u0432\u0443\u043a \u0431\u043b\u0438\u0436\u0435 \u043e\u0442 1\u043a\u0413\u0446 \u0438 \u0432\u044b\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u0438\u0441\u043a\u043b\u044f\u0432\u044b\u0439, \u043d\u0438\u0436\u0435 300\u0413\u0446 \u0431\u0443\u0434\u0435\u0442 \u0431\u0430\u0441\u0438\u0442\u044c.<\/p><\/blockquote>\n<p>  \u041d\u0430 \u043d\u0430\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0440\u0430\u0437\u044a\u0435\u043c Jack 3.5 \u0438 \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044c \u043a \u043d\u0435\u043c\u0443. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/83d\/cd0\/d49\/83dcd0d49b944acbb8adc45f6e158d3c.png\"\/><br \/>  \u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 \u0447\u0435\u0440\u0435\u0437 \u043f\u0438\u043d PE0. \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0436\u0430\u043c\u043f\u0435\u0440\u0430 \u00abDAC_OUT_SEL\u00bb \u043d\u0430 \u043f\u043b\u0430\u0442\u0435, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0432\u0443\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u043c \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0432, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u0438 \u043a Jack-\u0443. <\/p>\n<h4>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0438\u0449\u0430\u043b\u043a\u0438.<\/h4>\n<p>  \u0412\u043e\u043e\u0440\u0443\u0436\u0438\u0432\u0448\u0438\u0441\u044c \u0442\u0435\u043e\u0440\u0438\u0435\u0439, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u0449\u0430\u0442\u044c \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u043d\u043e\u0442\u044b \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u043e\u043a\u0442\u0430\u0432\u044b. <br \/>  \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u043d\u0430\u0448 \u043f\u0438\u043d. \u0421\u0440\u0430\u0437\u0443 \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u043a\u043e\u0434 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e, \u043a\u0440\u043e\u043c\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044f. \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0442\u0440\u0443\u0434\u0430.   <\/p>\n<pre><code class=\"objectivec\">\/\/--------------------------------------------------------- \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0432\u044b\u0445\u043e\u0434, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0439 \u043a \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044e.  \/\/--------------------------------------------------------- #define PER_CLOCK_PORTE              (1&lt;&lt;25)      \/\/\u0411\u0438\u0442 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0440\u0442\u0430 E. #define PORT_OE_OUT_PORTE_0          (1&lt;&lt;0)       \/\/\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0431\u0438\u0442\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 PORTE_0 \u0432 &quot;\u0432\u044b\u0445\u043e\u0434&quot;.  #define ANALOG_EN_DIGITAL_PORTE_0    (1&lt;&lt;0)       \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u0431\u0438\u0442\u0430 \u043f\u043e\u0440\u0442\u0430 PORTE_0. #define PWR_MAX_PORTE_0              (3&lt;&lt;0)       \/\/\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0438\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442 PORTE_0 \u0432 \u0440\u0435\u0436\u0438\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438.  #define PORT_RXTX_PORTE_0_OUT_1      (1&lt;&lt;0)       \/\/\u041c\u0430\u0441\u043a\u0430 \u043f\u043e\u0440\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0430\u0447\u0438 &quot;1&quot; \u043d\u0430 \u0432\u044b\u0445\u043e\u0434.  void Buzzer_out_init (void) { \tRST_CLK-&gt;PER_CLOCK |= PER_CLOCK_PORTE;          \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u0430 E. \tPORTE-&gt;OE |= PORT_OE_OUT_PORTE_0;               \/\/\u0412\u044b\u0445\u043e\u0434.  \tPORTE-&gt;ANALOG |= ANALOG_EN_DIGITAL_PORTE_0;     \/\/\u0426\u0438\u0444\u0440\u043e\u0432\u043e\u0439. \tPORTE-&gt;PWR |= PWR_MAX_PORTE_0;                  \/\/\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c (\u043e\u043a\u043e\u043b\u043e 10 \u043d\u0441). } <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c, \u0441 \u043a\u0430\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u00ab\u043f\u0438\u0449\u0430\u0442\u044c\u00bb. \u0412 \u044d\u0442\u043e\u043c \u043c\u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u0430 <a href=\"http:\/\/gtwiki.2102.su\/index.php?title=%D0%9D%D0%BE%D1%82%D1%8B_%D0%B8_%D1%87%D0%B0%D1%81%D1%82%D0%BE%D1%82%D0%B0\">\u044d\u0442\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0447\u0430\u0441\u0442\u043e\u0442<\/a>. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0438\u0436\u0435. <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/5b2\/d56\/97a\/5b2d5697a1c34096bbb558debb14b699.png\"\/><br \/>  \u041d\u043e\u0442\u0430 \u0434\u043e ( C ) \u043f\u0435\u0440\u0432\u043e\u0439 \u043e\u043a\u0442\u0430\u0432\u044b \u0438\u043c\u0435\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 261.63 \u0413\u0435\u0440\u0446\u0430. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0437\u0430 \u043e\u0434\u043d\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 261.63 \u043f\u0435\u0440\u0438\u043e\u0434\u0430. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b 2 \u0440\u0430\u0437\u0430 \u043c\u0435\u043d\u044f\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u0438\u0442\u0430. \u0418 \u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 523.26 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u041f\u043e\u0434\u0435\u043b\u0438\u0432 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043d\u0430 523.26 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c 0,0019110958223445, \u0447\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f 191*10^(-5) \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u042d\u0442\u043e \u00ab\u043f\u0430\u0443\u0437\u0430\u00bb \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c SysTick \u0442\u0430\u0439\u043c\u0435\u0440 \u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043a \u043d\u0435\u043c\u0443. \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430\u043c \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437 \u0432 10^(-5) \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u043d\u0430\u0448\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 <a href=\"http:\/\/habrahabr.ru\/post\/255415\/\">\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438<\/a>. \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435.   <\/p>\n<pre><code class=\"objectivec\">void Init_SysTick (void)                          \/\/\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437 \u0432 10^(-5) \u0441\u0435\u043a\u0443\u043d\u0434\u044b.  { \tSysTick-&gt;LOAD = (8000000\/100000)-1;                  \tSysTick-&gt;CTRL |= CLKSOURCE|TCKINT|ENABLE; }  volatile uint32_t Delay_dec = 0;                  \/\/\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 SysTick \u0442\u0430\u0439\u043c\u0435\u0440\u0430. void SysTick_Handler (void) { \tif (Delay_dec) Delay_dec--; }  void Delay (uint32_t Delay_Data)                  \/\/\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 SysTick \u0442\u0430\u0439\u043c\u0435\u0440\u0430.  { \tDelay_dec = Delay_Data; \twhile (Delay_dec) {}; } <\/code><\/pre>\n<p>  \u041d\u0443 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c, \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0432\u0441\u0435\u043c \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c.   <\/p>\n<pre><code class=\"objectivec\">int main (void) {   Buzzer_out_init();                               \/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0438\u043d \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.    Init_SysTick();                                  \/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0440\u0430\u0437 \u0432 10^(-5) \u0441\u0435\u043a\u0443\u043d\u0434\u044b.     while (1)                                        \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 261.63 \u0433\u0446.   {     PORTE-&gt;RXTX |= PORT_RXTX_PORTE_0_OUT_1;        \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c &quot;1&quot; \u043d\u0430 \u043f\u043e\u0440\u0442\u0443, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e\u043c\u0443 \u043a \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044e.     Delay(191);     PORTE-&gt;RXTX = 0;     Delay(191);   } } <\/code><\/pre>\n<p>  \u0412\u0441\u0435 \u0431\u044b \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u043e \u0442\u0443\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u0433\u0440\u0430\u0431\u043b\u0438. \u041a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435\u0442 \u043d\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0442 HSI. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u043e\u0442\u044b \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u043e\u043a\u0442\u0430\u0432\u044b, \u0438\u0433\u0440\u0430\u043b\u0430 \u043d\u043e\u0442\u0430 \u043b\u044f \u043c\u0430\u043b\u043e\u0439 \u043e\u043a\u0442\u0430\u0432\u044b (\u043d\u0430 2 \u0446\u0435\u043b\u044b\u0445 \u0442\u043e\u043d\u0430 \u043d\u0438\u0436\u0435). \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443 \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0441 HSI \u043d\u0430 HSE (\u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u0432\u0430\u0440\u0446\u0435\u0432\u044b\u0439 \u0440\u0435\u0437\u043e\u043d\u0430\u0442\u043e\u0440). <br \/>  \u041e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u044b\u043b\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e <a href=\"http:\/\/habrahabr.ru\/post\/255479\/\">\u0432 \u044d\u0442\u043e\u043c \u0443\u0440\u043e\u043a\u0435<\/a>.  <\/p>\n<pre><code class=\"objectivec\">int main (void) {   HSE_Clock_ON();                                  \/\/\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.    HSE_Clock_OffPLL();                              \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c &quot;\u043f\u0443\u0442\u044c&quot; \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.   Buzzer_out_init();                               \/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0438\u043d \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.    Init_SysTick();                                  \/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0440\u0430\u0437 \u0432 10^(-5) \u0441\u0435\u043a\u0443\u043d\u0434\u044b.     while (1)                                        \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 261.63 \u0433\u0446.   {     PORTE-&gt;RXTX |= PORT_RXTX_PORTE_0_OUT_1;        \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c &quot;1&quot; \u043d\u0430 \u043f\u043e\u0440\u0442\u0443, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e\u043c\u0443 \u043a \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044e.     Delay(191);     PORTE-&gt;RXTX = 0;     Delay(191);   } } <\/code><\/pre>\n<p>  \u0427\u0443\u0442\u044c \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443. \u041d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430\u043c \u0433\u0430\u043c\u043c\u0443 \u0438\u0437 12 \u043f\u043e\u043b\u0443\u0442\u043e\u043d\u043e\u0432 (7 \u0431\u0435\u043b\u044b\u0445 \u043a\u043b\u0430\u0432\u0438\u0448 \u0438 5 \u0447\u0435\u0440\u043d\u044b\u0445, \u0435\u0441\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0444\u043e\u0440\u0442\u0435\u043f\u0438\u0430\u043d\u043e). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432\u0441\u0435\u0445 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a. \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e: 100000\/\u0447\u0430\u0441\u0442\u043e\u0442\u0430_\u043d\u043e\u0442\u044b\/2 = \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c_\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. \u0414\u0435\u043b\u0438\u043c 100000 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437 \u0432 0.00001 \u0441\u0435\u043a\u0443\u043d\u0434\u044b (10^(-5)).   <\/p>\n<pre><code class=\"objectivec\">const uint32_t MES[13] = {191, 180, 170, 161, 152, 143, 135, 128, 120, 114, 107, 101, 96};<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e.   <\/p>\n<pre><code class=\"objectivec\">int main (void) {   HSE_Clock_ON();                                  \/\/\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.    HSE_Clock_OffPLL();                              \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c &quot;\u043f\u0443\u0442\u044c&quot; \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.   Buzzer_out_init();                               \/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0438\u043d \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.    Init_SysTick();                                  \/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0440\u0430\u0437 \u0432 10^(-5) \u0441\u0435\u043a\u0443\u043d\u0434\u044b.     while (1)                                        \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 261.63 \u0433\u0446.   {     for (uint32_t Nambe = 0; Nambe&lt;13; Nambe++)    \/\/\u0418\u0433\u0440\u0430\u0435\u043c \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043d\u043e\u0442\u044b.      {       for (uint32_t LoopN = 0; LoopN&lt;MES[12-Nambe]*3; LoopN++) \/\/\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0433\u0440\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u0443\u044e \u0438\u0437 \u043d\u0438\u0445.       {          PORTE-&gt;RXTX |= PORT_RXTX_PORTE_0_OUT_1;   \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c &quot;1&quot; \u043d\u0430 \u043f\u043e\u0440\u0442\u0443, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e\u043c\u0443 \u043a \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044e.          Delay(MES[Nambe]);          PORTE-&gt;RXTX = 0;          Delay(MES[Nambe]);       }     }   } } <\/code><\/pre>\n<p>  \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043a \u043a\u043e\u0434\u0443. \u0422\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u0438\u043d\u043d\u0430 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f \u0441\u044d\u043c\u043f\u043b\u0430 (\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0432\u043e\u043b\u043d\u044b) \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0442\u044b \u0440\u0430\u0437\u043d\u043e\u0435, \u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0442\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c, \u0446\u0438\u043a\u043b \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0427\u0438\u0441\u043b\u043e \u0441\u0430\u043c\u043e\u0439 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u043d\u043e\u0442\u044b (\u043d\u043e\u0442\u0430 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438) \u0437\u0432\u0443\u0447\u0430\u043b\u043e \u00ab\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0440\u0430\u0437\u00bb \u0441\u0430\u043c\u043e\u0439 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0439. \u041f\u043e\u044f\u0441\u043d\u044e. \u041d\u043e\u0442\u0430 \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u043e\u043a\u0442\u0430\u0432\u044b (191) \u0438\u0433\u0440\u0430\u043b\u0430\u0441\u044c 96 * 3 \u0440\u0430\u0437, \u0430 \u043d\u043e\u0442\u0430 \u0434\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043e\u043a\u0442\u0430\u0432\u044b (96) \u0438\u0433\u0440\u0430\u043b\u0430 191 \u0440\u0430\u0437 * 3. \u0422\u0440\u043e\u0439\u043a\u0430 \u0437\u0434\u0435\u0441\u044c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0414\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. <br \/>  \u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430\u0448\u0430 \u0432\u043e\u043b\u043d\u0430.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f21\/bac\/5da\/f21bac5da2d8434aab6e0ad2e7abd30e.png\"\/><br \/>  \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f \u043f\u043e \u0431\u043b\u0438\u0436\u0435, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0435\u0435 \u043d\u0435\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0441\u0442\u044c. \u041e\u043d\u0430 \u0434\u0430\u0436\u0435 \u0431\u043b\u0438\u0437\u043a\u043e \u043d\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f58\/384\/5e8\/f583845e8c974fdeb0ef4a1fec30a2f3.png\"\/><br \/>  \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0444\u0430\u0439\u043b \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/cloud.mail.ru\/public\/3YHfALw7t6sc\/%D0%9A%20%D1%83%D1%80%D0%BE%D0%BA%D0%B0%D0%BC.\">\u0437\u0434\u0435\u0441\u044c<\/a>. <a href=\"https:\/\/cloud.mail.ru\/public\/wXLAgBQDjjbj\/Game_in_1986BE92QI%20%20(%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%80%D1%83%D0%B5%D0%BC%20%D0%B8%20%D0%B2%D0%BE%D1%81%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D0%BC%20%D0%B7%D0%B2%D1%83%D0%BA_%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9%20%D0%BF%D0%B8%D1%89%D0%B0%D0%BB%D0%BA%D0%B8).rar\">\u0424\u0430\u0439\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0438\u0449\u0430\u043b\u043a\u0438. <\/a><\/p>\n<h4>\u041e\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u0426\u0410\u041f<\/h4>\n<p>  \u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u043d\u0430\u0448\u0435\u0439 \u00ab\u0432\u043e\u043b\u043d\u044b\u00bb \u0438 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442, \u0447\u0442\u043e \u0442\u0430\u043c \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430. \u0418\u0437\u0443\u0447\u0430\u044f \u0432\u043e\u043f\u0440\u043e\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u044b \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043b\u044e\u0431\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 <a href=\"http:\/\/avrdevices.ru\/r-2r-cap-praktitcheskoe-primenenie\/\">\u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a>. \u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0430\u0441\u044c \u043c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0432\u043d\u043e. \u0418 \u0442\u043e\u0433\u0434\u0430 \u044f \u043f\u0440\u043e\u0447\u0435\u043b \u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0434\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430. \u0421\u0435\u0439\u0447\u0430\u0441 \u0436\u0435 \u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0426\u0410\u041f (\u0446\u0438\u0444\u0440\u043e-\u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c). \u0426\u0410\u041f \u2014 \u044d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0432, \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435. \u042f \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0445\u043e\u0442\u0435\u043b \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438, \u043d\u043e \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u0438\u0437\u0443\u0447\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0443\u0432\u0438\u0434\u0435\u043b \u043f\u0443\u043d\u043a\u0442.  <\/p>\n<blockquote><p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 MDR_DAC &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;326<\/p><\/blockquote>\n<p>  \u042d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u043c \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u043e\u043c. \u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u043d\u0435\u0435 \u044f \u043d\u0435 \u0432\u0438\u0434\u0435\u043b \u0426\u0410\u041f-\u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u0441\u0430\u043c\u043e\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435. \u041d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0426\u0410\u041f \u043a \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0445\u0435\u043c\u0443 \u043f\u043b\u0430\u0442\u044b \u0438 \u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435. <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/a4c\/222\/4a2\/a4c2224a2d6d4d91aac475e06fd08e97.png\"\/><br \/>  \u0412\u044b\u0432\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a PE0, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u0426\u0410\u041f. \u041e\u0442\u043b\u0438\u0447\u043d\u043e. \u041c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443. \u041d\u043e \u043f\u0435\u0440\u0435\u0434 \u044d\u0442\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0438\u043c \u0426\u0410\u041f.   <\/p>\n<blockquote><p>\u0412 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0434\u0432\u0430 \u0426\u0410\u041f. \u0414\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0426\u0410\u041f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0438\u0442 Cfg_ON_DACx \u0432 1, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0426\u0410\u041f \u043f\u043e\u0440\u0442\u0430 \u0415 \u0431\u044b\u043b\u0438 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043a\u0430\u043a \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0438 \u0431\u044b\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438. \u041e\u0431\u0430 \u0426\u0410\u041f \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u0438\u043b\u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e. \u041f\u0440\u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0426\u0410\u041f (\u0431\u0438\u0442 Cfg_SYNC_A=0) \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 DACx_DATA \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 DACx_OUT \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u041f\u0440\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 (\u0431\u0438\u0442 Cfg_SYNC_A=1) \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u043e\u0438\u0445 \u0426\u0410\u041f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0432 \u043e\u0434\u0438\u043d \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 DACx_DATA. \u0426\u0410\u041f \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043e\u043f\u043e\u0440\u044b Cfg_M_REFx=0, \u0442\u043e\u0433\u0434\u0430 \u0426\u0410\u041f \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 0 \u0434\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f AUCC. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043e\u043f\u043e\u0440\u043e\u0439 Cfg_M_REFx=1 \u0426\u0410\u041f \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 0 \u0434\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f DACx_REF.<\/p><\/blockquote>\n<p>  \u0422\u0443\u0442, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430. \u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b. <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/269\/b6a\/7cb\/269b6a7cb90a414ebbe0ffb2247b8b3f.png\"\/><br \/>  \u0418\u0445 \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u043d\u0430 \u0434\u0432\u0430 \u0426\u0410\u041f. \u0418\u0437 \u043d\u0438\u0445 \u0434\u0432\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0426\u0410\u041f. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/3c4\/c5d\/996\/3c4c5d996b1c4298bebb23f86ccbfc17.png\"\/><br \/>  \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435. \u0422\u0430\u043a \u0436\u0435 \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 DAC. \u041d\u0443 \u0438 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 (0xFFF = 4095).   <\/p>\n<pre><code class=\"objectivec\">\/\/--------------------------------------------------------- \/\/\u0426\u0410\u041f. \/\/--------------------------------------------------------- #define PCLK_EN_DAC             (1&lt;&lt;18)                                \/\/\u041c\u0430\u0441\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0426\u0410\u041f.  #define CFG_Cfg_ON_DAC0         (1&lt;&lt;2)                                 \/\/\u041c\u0430\u0441\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0426\u0410\u041f1.                      void ADC_Init (void) { \tRST_CLK-&gt;PER_CLOCK |= PCLK_EN_DAC;             \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0426\u0410\u041f. \tDAC-&gt;CFG = CFG_Cfg_ON_DAC0;                    \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0426\u0410\u041f1. \u0410\u0441\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e. \u041e\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430. } <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u0435\u043c \u0438 \u043e \u0432\u044b\u0445\u043e\u0434\u0435. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0443\u0440\u043e\u043a\u0435 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u043a\u0430\u043a \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0432\u044b\u0445\u043e\u0434. \u0421\u0435\u0439\u0447\u0430\u0441 \u0436\u0435, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u043a \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439.   <\/p>\n<pre><code class=\"objectivec\">void Buzzer_out_DAC_init (void) { \tRST_CLK-&gt;PER_CLOCK |= PER_CLOCK_PORTE;          \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u0430 E. \tPORTE-&gt;OE |= PORT_OE_OUT_PORTE_0;               \/\/\u0412\u044b\u0445\u043e\u0434.  \tPORTE-&gt;ANALOG = 0;                              \/\/\u0410\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439. \tPORTE-&gt;PWR |= PWR_MAX_PORTE_0;                  \/\/\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c (\u043e\u043a\u043e\u043b\u043e 10 \u043d\u0441). } <\/code><\/pre>\n<p>  \u041d\u0443 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e.   <\/p>\n<pre><code class=\"objectivec\">int main (void) {   HSE_Clock_ON();                                  \/\/\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.    HSE_Clock_OffPLL();                              \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c &quot;\u043f\u0443\u0442\u044c&quot; \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.   Buzzer_out_DAC_init();                           \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0426\u0410\u041f.   ADC_Init();                                      \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0426\u0410\u041f.   Init_SysTick();                                  \/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0440\u0430\u0437 \u0432 10^(-5) \u0441\u0435\u043a\u0443\u043d\u0434\u044b.    DAC-&gt;DAC1_DATA = 0xFFF;                          \/\/\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c (\u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439).   while (1)                                           {    } } <\/code><\/pre>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441, \u0435\u0441\u043b\u0438 \u0437\u0430\u043c\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0438\u043d\u0435, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u043a\u043e\u043b\u043e \u0442\u0440\u0435\u0445 \u0432\u043e\u043b\u044c\u0442. \u041d\u041e. \u042d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. \u041d\u0430 \u043f\u0438\u043d\u0435 \u0443 \u043d\u0430\u0441 \u043e\u043a\u043e\u043b\u043e 0.08 \u0432\u043e\u043b\u044c\u0442. \u0427\u0442\u043e \u043d\u0435 \u0435\u0441\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u043e. \u0418\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f. \u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b, \u0437\u0430\u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043b\u0438 \u0426\u0410\u041f, \u0412\u0441\u0435 \u0431\u044b\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e. \u041e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0432\u0435\u0440\u043d\u043e. \u0414\u0430\u043b\u0435\u0435 \u044f \u0440\u0435\u0448\u0438\u043b \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0438\u043d\u043e\u0432 \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435. <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/22b\/d5b\/a11\/22bd5ba112fe4db692ba766f3bec2af0.png\"\/><br \/>  \u0412\u043e\u0442 \u044d\u0442\u043e \u043d\u043e\u0432\u043e\u0441\u0442\u044c. PE0 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043d\u0435 \u043a DAC1, \u0430 \u043a DAC2! \u0412\u043e\u0442 \u0438 \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430\u2026 \u041c\u0435\u043d\u044f\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0426\u0410\u041f-\u0430.  <\/p>\n<pre><code class=\"objectivec\">\/\/--------------------------------------------------------- \/\/\u0426\u0410\u041f. \/\/--------------------------------------------------------- #define PCLK_EN(DAC)             (1&lt;&lt;18)                                \/\/\u041c\u0430\u0441\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0426\u0410\u041f.  #define CFG_Cfg_ON_DAC0          (1&lt;&lt;2)                                 \/\/\u041c\u0430\u0441\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0426\u0410\u041f1.                     #define CFG_Cfg_ON_DAC1          (1&lt;&lt;3) void ADC_Init (void) { \tRST_CLK-&gt;PER_CLOCK |= PCLK_EN(DAC);             \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0426\u0410\u041f. \tDAC-&gt;CFG = CFG_Cfg_ON_DAC1;                     \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0426\u0410\u041f2. \u0410\u0441\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e. \u041e\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430. } <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 3.28 \u0432\u043e\u043b\u044c\u0442\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0438\u0449\u0430\u043b\u043a\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0432\u0443\u043a \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u0430\u043c\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0447\u0443\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u043a\u043e\u0434 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.   <\/p>\n<pre><code class=\"objectivec\">const uint32_t MES[13] = {191, 180, 170, 161, 152, 143, 135, 128, 120, 114, 107, 101, 96}; int main (void) {   HSE_Clock_ON();                                  \/\/\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.    HSE_Clock_OffPLL();                              \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c &quot;\u043f\u0443\u0442\u044c&quot; \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.   Buzzer_out_DAC_init();                           \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0426\u0410\u041f.   ADC_Init();                                      \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0426\u0410\u041f.   Init_SysTick();                                  \/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0440\u0430\u0437 \u0432 10^(-5) \u0441\u0435\u043a\u0443\u043d\u0434\u044b.    while (1)                                           {     for (uint32_t Nambe = 0; Nambe&lt;13; Nambe++)    \/\/\u0418\u0433\u0440\u0430\u0435\u043c \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043d\u043e\u0442\u044b.      {       for (uint32_t LoopN = 0; LoopN&lt;MES[12-Nambe]*3; LoopN++) \/\/\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0433\u0440\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u0443\u044e \u0438\u0437 \u043d\u0438\u0445.       {          DAC-&gt;DAC2_DATA = 0xFFF;          Delay(MES[Nambe]);          DAC-&gt;DAC2_DATA = 0;           Delay(MES[Nambe]);       }     }   } } <\/code><\/pre>\n<p>  \u0427\u0438\u0441\u0442\u043e \u043f\u043e \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u044f\u043c \u0437\u0432\u0443\u043a \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u044f\u0442\u043d\u0435\u0435, \u0447\u0435\u043c \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u0414\u0430 \u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u043e\u043d \u043a\u0443\u0434\u0430 \u0433\u0440\u043e\u043c\u0447\u0435. <a href=\"https:\/\/cloud.mail.ru\/public\/2u13mxeto164\/%D0%9E%D1%81%D0%B2%D0%BE%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%A6%D0%90%D0%9F.flac\">\u0412\u043e\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/a>. <a href=\"https:\/\/cloud.mail.ru\/public\/3L5pSdeWLSzy\/Game_in_1986BE92QI%20%20(%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%80%D1%83%D0%B5%D0%BC%20%D0%B8%20%D0%B2%D0%BE%D1%81%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D0%BC%20%D0%B7%D0%B2%D1%83%D0%BA_%D0%9E%D1%81%D0%B2%D0%BE%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%A6%D0%90%D0%9F).rar\">\u0412\u043e\u0442 \u0444\u0430\u0439\u043b \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>. \u0410 \u0432\u043e\u0442, \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u043d\u0430\u0448\u0430 \u0432\u043e\u043b\u043d\u0430.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/885\/df6\/797\/885df6797e3c40a6b275ec5fa6708d7e.png\"\/><br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/5e1\/39f\/003\/5e139f003ebb461eabb400cb67c9332d.png\"\/><br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/b10\/b72\/a67\/b10b72a67b0a4b6d8c3e85fe966e7dd7.png\"\/><br \/>  \u041e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435: \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044c \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0431\u0435\u0437\u0443\u043c\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0433\u0440\u0435\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043c\u0438\u043d\u0443\u0442 \u043d\u0430 10, \u0442\u043e \u043e\u043d \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0447\u044c\u2026 \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u044e \u0434\u0436\u0430\u043c\u043f\u0435\u0440 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u043b \u0437\u0432\u0443\u043a. \u0422\u0430\u043a \u043e\u043d \u043d\u0435 \u043d\u0430\u0433\u0440\u0435\u0432\u0430\u0435\u0442\u0441\u044f. <\/p>\n<h4>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u043e\u043b\u043d\u044b.<\/h4>\n<p>  \u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0432\u0448\u0438\u0441\u044c \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u044f \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0441\u044f, \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f? \u0411\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432 \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 <a href=\"http:\/\/habrahabr.ru\/post\/126835\/\">\u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e<\/a>. \u0412 \u043d\u0435\u0439 \u044f \u043d\u0430\u0448\u0435\u043b \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435. \u041a\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0438\u043d\u0443\u0441\u0430 \u0432\u043e\u043b\u043d\u044b. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0432 \u043a\u043e\u0434 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044f \u0434\u043b\u0438\u043d\u0443 \u0432\u043e\u043b\u043d\u044b \u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u044d\u043c\u043f\u043b\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430. <a href=\"https:\/\/cloud.mail.ru\/public\/4rrf7m5AeGA4\/SinWav.rar\">\u0412\u043e\u0442 \u043a\u043e\u0434 \u043d\u0430 Pascal ABC<\/a> (\u0412\u0441\u0435 \u0442\u0430\u043a\u0438 \u043d\u0443\u0436\u043d\u043e \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043a \u0415\u0413\u042d \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u043d\u0430 \u043f\u0430\u0441\u043a\u0430\u043b\u0435.).  <\/p>\n<pre><code class=\"objectivec\">Program Sin_wav; Var Real_Data,     PR: double;           \/\/\u041f\u0435\u0440\u0438\u0443\u0434 \u0432\u043e\u043b\u043d\u044b.     samplerate: word;     \/\/\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u044d\u043c\u043f\u043b\u0430.     wavefrequency: double;\/\/\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u043e\u043b\u043d\u044b.      Loop: word;           \/\/\u0421\u0447\u0435\u0442\u0447\u0438\u043a.     Name: string;         \/\/\u0418\u043c\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430. Begin     write('\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u044d\u043c\u043f\u043b\u0430: '); readln(samplerate);   \/\/\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435.     write('\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u043e\u043b\u043d\u044b: ');  readln(wavefrequency);     write('\u0418\u043c\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430:  ');   readln(Name);     write('const uint16_t ', Name, '[', samplerate, '] = {');     PR:=samplerate\/2;                                \/\/\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0438\u0443\u0434.     for Loop:=0 to samplerate-1 do                   \/\/-1, \u0442.\u043a. \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441 0.     Begin     Real_Data := 2047*sin(Loop*pi\/PR) + 2047;        \/\/\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 sine-\u0432\u043e\u043b\u043d\u044b.     \/\/\u0422.\u043a. \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 - \u043f\u043e\u0434\u043d\u0438\u043c\u0438\u043c 0 \u0434\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b.     \/\/\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c 2048-1 (\u043e\u0442 0 \u0434\u043e 4095) = 0, \u0430 2045 = -2.     \/\/2047 - \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0426\u0410\u041f. \u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 +, \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 -. \u0418 0.     write(Round(Real_Data));     if (Loop&lt;&gt;samplerate-1) then write(', ');     End;     write('};') End. <\/code><\/pre>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u043d\u044e. \u0421\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041d\u0430\u0448 \u0426\u0410\u041f \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0448\u044c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435. \u0422\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f, \u0433\u0440\u0443\u0431\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0438\u0437-\u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f, \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e 0 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0426\u0410\u041f. \u0418\u043d\u0430\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f 2047 = 0, 2045 = -2, 2049 = 2. \u041e\u0431\u0449\u0430\u044f \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 4095 (\u0415\u0441\u043b\u0438 \u0432\u0435\u0441\u0442\u0438 \u0441\u0447\u0435\u0442 \u043e\u0442 0). \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0443 \u043d\u043e\u0442\u044b \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u043e\u043a\u0442\u0430\u0432\u044b (\u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u043e\u043b\u043d\u044b 261.63 \u0413\u0435\u0440\u0446\u0430). \u041c\u044b \u0440\u0430\u0437\u043e\u0431\u044c\u0435\u043c \u044d\u0442\u0443 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0443 \u043d\u0430 100 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u0432.   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u043e\u0442\u0430 \u0434\u043e ( C ) \u043f\u0435\u0440\u0432\u043e\u0439 \u043e\u043a\u0442\u0430\u0432\u044b, 100 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u0432.<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"objectivec\">\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u044d\u043c\u043f\u043b\u0430: 100 \u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u043e\u043b\u043d\u044b: 261.63 \u0418\u043c\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430:  C_4 const uint16_t C_4[100] = {2047, 2176, 2304, 2431, 2556, 2680, 2801, 2919, 3033, 3144, 3250, 3352, 3448, 3539, 3624, 3703, 3775, 3841, 3899, 3950, 3994, 4030, 4058, 4078, 4090, 4094, 4090, 4078, 4058, 4030, 3994, 3950, 3899, 3841, 3775, 3703, 3624, 3539, 3448, 3352, 3250, 3144, 3033, 2919, 2801, 2680, 2556, 2431, 2304, 2176, 2047, 1918, 1790, 1663, 1538, 1414, 1293, 1175, 1061, 950, 844, 742, 646, 555, 470, 391, 319, 253, 195, 144, 100, 64, 36, 16, 4, 0, 4, 16, 36, 64, 100, 144, 195, 253, 319, 391, 470, 555, 646, 742, 844, 950, 1061, 1175, 1293, 1414, 1538, 1663, 1790, 1918}; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h4>\u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u043e\u043b\u043d\u043e\u0439.<\/h4>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u0432 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0443 \u0440\u0430\u0437\u0431\u0438\u0442\u0443\u044e \u043d\u0430 100 \u0447\u0430\u0441\u0442\u0435\u0439, \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0438\u0433\u0440\u0430\u043d\u0430 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 261,63 \u0433\u0435\u0440\u0446\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u0421\u0435\u043a\u0443\u043d\u0434\u0430\/(100 \u0447\u0430\u0441\u0442\u0435\u0439 * 261, 63) = 0.00003822191 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u041d\u0443 \u0447\u0442\u043e\u0436. \u0421\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443. \u042f \u043f\u0440\u043e\u0432\u0435\u043b \u043c\u043e\u0440\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a. \u0412\u043a\u0440\u0430\u0442\u0446\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043d\u0438\u0445. \u0422\u0430\u043a \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0432 8 \u041c\u0433\u0446 \u0443\u0436\u0435 \u044f\u0432\u043d\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u0442\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u0441\u0435\u0431\u044f \u043f\u043e\u0431\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0438 \u0440\u0430\u0437\u043e\u0433\u043d\u0430\u043b \u0447\u0438\u043f \u0434\u043e 80 \u041c\u0413\u0446, \u043d\u0430\u0434\u0435\u044f\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043d\u0435 \u0442\u043e\u0447\u043d\u043e \u0445\u0432\u0430\u0442\u0438\u0442. \u041d\u043e \u043d\u0435 \u0442\u0443\u0442 \u0442\u043e \u0431\u044b\u043b\u043e. \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f SysTick \u043d\u0430 10000000 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u043b \u0434\u043e \u0446\u0438\u043a\u043b\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0435. \u041f\u043e\u0441\u043b\u0435 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u043a\u0443\u0434\u0430 \u043f\u0440\u043e\u0449\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435.  <\/p>\n<pre><code class=\"objectivec\">void Init_SysTick (void)                          \/\/\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 10000000 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.  { \tSysTick-&gt;LOAD = (80000000\/10000000)-1;                  \tSysTick-&gt;CTRL |= CLKSOURCE|TCKINT|ENABLE; }  const uint16_t C_4[100] = {2047, 2176, 2304, 2431, 2556, 2680, 2801, 2919, 3033, 3144, 3250, 3352, 3448, 3539, 3624, 3703, 3775, 3841, 3899, 3950, 3994, 4030, 4058, 4078, 4090, 4094, 4090, 4078, 4058, 4030, 3994, 3950, 3899, 3841, 3775, 3703, 3624, 3539, 3448, 3352, 3250, 3144, 3033, 2919, 2801, 2680, 2556, 2431, 2304, 2176, 2047, 1918, 1790, 1663, 1538, 1414, 1293, 1175, 1061, 950, 844, 742, 646, 555, 470, 391, 319, 253, 195, 144, 100, 64, 36, 16, 4, 0, 4, 16, 36, 64, 100, 144, 195, 253, 319, 391, 470, 555, 646, 742, 844, 950, 1061, 1175, 1293, 1414, 1538, 1663, 1790, 1918}; volatile uint16_t Loop = 0; volatile uint32_t Delay_dec = 0;                  \/\/\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 SysTick \u0442\u0430\u0439\u043c\u0435\u0440\u0430. void SysTick_Handler (void) { \tDelay_dec++; if (Delay_dec==(382-1)) \t{     DAC-&gt;DAC2_DATA = C_4[Loop];     if (Loop&lt;99) Loop++; else Loop = 0; \t\tDelay_dec=0; \t} } <\/code><\/pre>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u043c\u0435\u043b\u0430 \u0432\u0438\u0434.  <\/p>\n<pre><code class=\"objectivec\">int main (void) {   HSE_Clock_ON();                                  \/\/\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.    HSE_Clock_OffPLL();                              \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c &quot;\u043f\u0443\u0442\u044c&quot; \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 HSE \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.   Buzzer_out_DAC_init();                           \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0426\u0410\u041f.   ADC_Init();                                      \/\/\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0426\u0410\u041f.   HSE_PLL(10);                                     \/\/8 \u041c\u0433\u0446 -&gt; 80 \u041c\u0433\u0446.    Init_SysTick();                                  \/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439.   while (1)                                           {    } } <\/code><\/pre>\n<p>  \u0417\u0432\u0443\u043a \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0441\u044f \u0442\u0430\u043a\u0438\u043c.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/e5e\/934\/4ff\/e5e9344ffddc48e687f7b39ab5ae5b16.png\"\/><br \/>  \u041f\u0440\u0438 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0438 \u0432\u0438\u0434\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/bee\/38f\/eba\/bee38febaa494746a8fcc66aebc351b0.png\"\/><br \/>  \u0412\u043e\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u043e\u0435 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u0435 \u00ab\u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u044b\u00bb.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/d20\/3ff\/999\/d203ff999b724710a5403bdec29a4b94.png\"\/><br \/>  \u0412\u0438\u0434\u043d\u0430 \u043e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c. \u0410 \u0442\u0430\u043a \u0436\u0435 \u0437\u0432\u0443\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u0438\u043c. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044f \u043c\u0430\u043b\u043e\u0439 \u043e\u043a\u0442\u0430\u0432\u044b. \u041d\u0435 \u0432\u044b\u0448\u0435. \u0427\u0442\u043e \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0443\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u043e\u0434 \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f. \u0414\u0430\u0436\u0435 \u043f\u0440\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 80 \u041c\u0433\u0446. \u041f\u043e\u0441\u0442\u0443\u043f\u0438\u043c \u0438\u043d\u0430\u0447\u0435. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043d\u0438\u0437\u0438\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0447\u0443\u0442\u044c \u0440\u0435\u0436\u0435. \u0418 \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u043c \u0446\u0438\u043a\u043b \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435.   <\/p>\n<pre><code class=\"objectivec\">void Init_SysTick (void)                          \/\/\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 10000000 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.  { \tSysTick-&gt;LOAD = (80000000\/1000000)-1;                  \tSysTick-&gt;CTRL |= CLKSOURCE|TCKINT|ENABLE; }  const uint16_t C_4[100] = {2047, 2176, 2304, 2431, 2556, 2680, 2801, 2919, 3033, 3144, 3250, 3352, 3448, 3539, 3624, 3703, 3775, 3841, 3899, 3950, 3994, 4030, 4058, 4078, 4090, 4094, 4090, 4078, 4058, 4030, 3994, 3950, 3899, 3841, 3775, 3703, 3624, 3539, 3448, 3352, 3250, 3144, 3033, 2919, 2801, 2680, 2556, 2431, 2304, 2176, 2047, 1918, 1790, 1663, 1538, 1414, 1293, 1175, 1061, 950, 844, 742, 646, 555, 470, 391, 319, 253, 195, 144, 100, 64, 36, 16, 4, 0, 4, 16, 36, 64, 100, 144, 195, 253, 319, 391, 470, 555, 646, 742, 844, 950, 1061, 1175, 1293, 1414, 1538, 1663, 1790, 1918}; volatile uint16_t Loop = 0; volatile uint32_t Delay_dec = 0;                  \/\/\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 SysTick \u0442\u0430\u0439\u043c\u0435\u0440\u0430. void SysTick_Handler (void) { \tDelay_dec++; if (Delay_dec==(38-1)) \t{     DAC-&gt;DAC2_DATA = C_4[Loop];     if (Loop&lt;99) Loop++; else Loop = 0; \t\tDelay_dec=0; \t} } <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c\u0441\u044f. \u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u0432\u0443\u043a \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0439 \u0441 \u043d\u043e\u0442\u043e\u0439 \u0414\u043e. \u041d\u043e \u0432\u0441\u0435 \u0436\u0435 \u043d\u0430 \u0441\u043b\u0443\u0445 (\u043f\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 \u0444\u043e\u0440\u0442\u0435\u043f\u0438\u0430\u043d\u043e) \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c. \u041f\u0440\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/cloud.mail.ru\/public\/2yFXcuLkWtLi\/%D0%A6%D0%90%D0%9F%20%D0%B2%20%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8.flac\">\u0442\u0443\u0442<\/a>. \u0424\u0430\u0439\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/cloud.mail.ru\/public\/5fN9Yok1KfNY\/Game_in_1986BE92QI%20%20(%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%80%D1%83%D0%B5%D0%BC%20%D0%B8%20%D0%B2%D0%BE%D1%81%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D0%BC%20%D0%B7%D0%B2%D1%83%D0%BA_%D0%A6%D0%90%D0%9F%20%D0%B2%20%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8).rar\">\u0437\u0434\u0435\u0441\u044c<\/a>. <br \/>  \u041d\u0430\u0448\u0430 \u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0432\u043e\u043b\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434. <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f73\/f08\/38d\/f73f0838da9c4132a569073a83bbffc5.png\"\/><br \/>  \u041f\u043e\u0434\u044a\u0435\u043c \u00ab\u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u044b\u00bb \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434. <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/a1b\/afb\/ce9\/a1bafbce9a374e56a3dccfa0f4cd9f68.png\"\/><br \/>  \u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0442\u043e\u043b\u043a\u0430 \u0432 \u043d\u0430\u0448\u0438\u0445 100 \u0447\u0430\u0441\u0442\u044f\u0445 \u043d\u0435\u0442. \u0426\u0410\u041f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435. (\u041a\u0430\u043a \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f.) \u0418\u0437\u043c\u0435\u043d\u0438\u043c \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0430 \u0438\u0437 20 \u0447\u0430\u0441\u0442\u0435\u0439. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432.   <\/p>\n<pre><code class=\"objectivec\">\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u044d\u043c\u043f\u043b\u0430: 20 \u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u043e\u043b\u043d\u044b: 261.63 \u0418\u043c\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430:  C_4 const uint16_t C_4[20] = {2047, 2680, 3250, 3703, 3994, 4094, 3994, 3703, 3250, 2680, 2047, 1414, 844, 391, 100, 0, 100, 391, 844, 1414}; <\/code><\/pre>\n<p>  \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043f\u0435\u0440\u044c. \u0421\u0435\u043a\u0443\u043d\u0434\u0443\/(20 \u0447\u0430\u0441\u0442\u0435\u0439 * 261.63) = 0.00019110958 \u0441\u0435\u043a\u0443\u043d\u0434\u044b ~ 191*10^(-6). \u042d\u0442\u043e \u0443\u0436\u0435 \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u0431\u044b\u043b\u043e \u0440\u0430\u043d\u044c\u0448\u0435. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435.   <\/p>\n<pre><code class=\"objectivec\">void Init_SysTick (void)                          \/\/\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 1000000 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.  { \tSysTick-&gt;LOAD = (80000000\/1000000)-1;                  \tSysTick-&gt;CTRL |= CLKSOURCE|TCKINT|ENABLE; }  const uint16_t C_4[20] = {2047, 2680, 3250, 3703, 3994, 4094, 3994, 3703, 3250, 2680, 2047, 1414, 844, 391, 100, 0, 100, 391, 844, 1414}; volatile uint16_t Loop = 0; volatile uint32_t Delay_dec = 0;                  \/\/\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 SysTick \u0442\u0430\u0439\u043c\u0435\u0440\u0430. void SysTick_Handler (void) { \tDelay_dec++; if (Delay_dec==(191-1)) \t{     DAC-&gt;DAC2_DATA = C_4[Loop];     if (Loop&lt;19) Loop++; else Loop = 0; \t\tDelay_dec=0; \t} } <\/code><\/pre>\n<p>  \u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0437\u0432\u0443\u043a \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u044b\u0439 \u043a \u043d\u043e\u0442\u0435 \u0414\u043e. \u0417\u0432\u0443\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c <a href=\"https:\/\/cloud.mail.ru\/public\/26oRSY6hSRQe\/%D0%A6%D0%90%D0%9F%20%D0%B2%20%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20(20%20%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%BE%D0%BA).flac\">\u0437\u0434\u0435\u0441\u044c<\/a>. <br \/>  \u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0432\u043e\u043b\u043d\u0443. <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/c68\/d42\/07e\/c68d4207e2f8406cbadc9b21a4a97df8.png\"\/><br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8de\/c63\/789\/8dec63789be84b73972643ec2b1a1c39.PNG\"\/><br \/>  \u041a \u043c\u043e\u0435\u043c\u0443 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439 \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b! \u0425\u043e\u0442\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u043b\u0430 \u0431\u044b\u0442\u044c \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430. \u0413\u0434\u0435-\u0442\u043e \u044f \u043e\u0448\u0438\u0431\u0441\u044f\u2026 \u00ab\u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0443 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f?\u00bb \u2014 \u043f\u043e\u0434\u0443\u043c\u0430\u043b \u044f. \u0418\u0437\u043c\u0435\u043d\u0438\u043b \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043d\u0430 \u043f\u0430\u0441\u043a\u0430\u043b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u00ab\u0432\u044b\u0441\u043e\u0442\u0443 \u0432\u043e\u043b\u043d\u044b\u00bb \u043e\u0442 \u00ab0\u00bb \u0434\u043e \u00ab\u043f\u0440\u0435\u0434\u0435\u043b\u0430\u00bb \u0441 2047 \u043d\u0430 1500. \u041d\u043e \u044d\u0442\u043e \u043d\u0438 \u043a \u0447\u0435\u043c\u0443 \u043d\u0435 \u043f\u0440\u0438\u0432\u0435\u043b\u043e. \u0418 \u0442\u0443\u0442 \u044f \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u043b \u043d\u0430 \u043c\u0435\u043d\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0438 \u0443\u0432\u0438\u0434\u0435\u043b.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/ede\/1be\/f70\/ede1bef707644ace823719a4fb726309.png\"\/><br \/>  \u041e\u0442 -1 \u0432\u043e\u043b\u044c\u0442\u0430 \u0434\u043e 1 \u0432\u043e\u043b\u044c\u0442\u0430! \u0418\u043d\u0430\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 2 \u0432\u043e\u043b\u044c\u0442\u0430! \u0410 \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u043e 3 + \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044c! \u041c\u043d\u0435 \u0431\u044b\u043b\u043e \u043b\u0435\u043d\u044c \u0438\u0441\u043a\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043d\u0430 \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u043f\u0443\u0442\u0435\u043c \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u044f \u0443\u0437\u043d\u0430\u043b, \u0447\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u2014 70*2. <a href=\"https:\/\/cloud.mail.ru\/public\/2wZk8B3chaXi\/SinWav%201.1%20(%D0%A3%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B5%D0%BD%D0%B0%20%D0%B0%D0%BC%D0%BF%D0%BB%D0%B8%D1%82%D1%83%D0%B4%D0%B0).rar\">\u0412\u043e\u0442 \u043a\u043e\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 \u043f\u0430\u0441\u043a\u0430\u043b\u0435<\/a>.   <\/p>\n<pre><code class=\"objectivec\">Program Sin_wav; Var Real_Data,     PR: double;           \/\/\u041f\u0435\u0440\u0438\u0443\u0434 \u0432\u043e\u043b\u043d\u044b.     samplerate: word;     \/\/\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u044d\u043c\u043f\u043b\u0430.     wavefrequency: double;\/\/\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u043e\u043b\u043d\u044b.      Loop: word;           \/\/\u0421\u0447\u0435\u0442\u0447\u0438\u043a.     Name: string;         \/\/\u0418\u043c\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430. Begin     write('\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u044d\u043c\u043f\u043b\u0430: '); readln(samplerate);   \/\/\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435.     write('\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u043e\u043b\u043d\u044b: ');  readln(wavefrequency);     write('\u0418\u043c\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430:  ');   readln(Name);     write('const uint16_t ', Name, '[', samplerate, '] = {');     PR:=samplerate\/2;                                \/\/\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0438\u0443\u0434.     for Loop:=0 to samplerate-1 do                   \/\/-1, \u0442.\u043a. \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441 0.     Begin     Real_Data := 70*sin(Loop*pi\/PR) + 2047;        \/\/\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 sine-\u0432\u043e\u043b\u043d\u044b.     \/\/\u0422.\u043a. \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 - \u043f\u043e\u0434\u043d\u0438\u043c\u0438\u043c 0 \u0434\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b.     \/\/\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c 2048-1 (\u043e\u0442 0 \u0434\u043e 4095) = 0, \u0430 2045 = -2.     \/\/2047 - \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0426\u0410\u041f. \u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 +, \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 -. \u0418 0.     write(Round(Real_Data));     if (Loop&lt;&gt;samplerate-1) then write(', ');     End;     write('};') End. <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432.   <\/p>\n<pre><code class=\"objectivec\">const uint16_t C_4[20] = {2047, 2069, 2088, 2104, 2114, 2117, 2114, 2104, 2088, 2069, 2047, 2025, 2006, 1990, 1980, 1977, 1980, 1990, 2006, 2025};<\/code><\/pre>\n<p>  <a href=\"https:\/\/cloud.mail.ru\/public\/287ag3CA2yA1\/%D0%A6%D0%90%D0%9F%20%D0%B2%20%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20(20%20%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%BE%D0%BA%2C%20%D0%BE%D1%82%D0%BB%D0%B0%D0%B6%D0%B5%D0%BD%D0%BE%20%D0%BD%D0%B0%D0%BF%D1%80%D1%8F%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5).flac\">\u0410\u0443\u0434\u0438\u043e\u0437\u0430\u043f\u0438\u0441\u044c<\/a>. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043d\u0430\u0448 \u0441\u0438\u0433\u043d\u0430\u043b. \u041d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0443! <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f00\/f5b\/de1\/f00f5bde13ee4d0ba3d7b0fd6885aee0.png\"\/><br \/>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u044f \u0441\u043c\u043e\u0433 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0443 \u0438\u0437 20 \u0447\u0430\u0441\u0442\u0435\u0439, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043a\u043e\u0434\u043e\u043c, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u043c \u0440\u0430\u043d\u0435\u0435, \u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0443 \u0438\u0437 100 \u0447\u0430\u0441\u0442\u0435\u0439. \u0412\u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432.   <\/p>\n<pre><code class=\"objectivec\">\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u044d\u043c\u043f\u043b\u0430: 100 \u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u043e\u043b\u043d\u044b: 261.63 \u0418\u043c\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430:  C_4 const uint16_t C_4[100] = {2047, 2051, 2056, 2060, 2064, 2069, 2073, 2077, 2081, 2085, 2088, 2092, 2095, 2098, 2101, 2104, 2106, 2108, 2110, 2112, 2114, 2115, 2116, 2116, 2117, 2117, 2117, 2116, 2116, 2115, 2114, 2112, 2110, 2108, 2106, 2104, 2101, 2098, 2095, 2092, 2088, 2085, 2081, 2077, 2073, 2069, 2064, 2060, 2056, 2051, 2047, 2043, 2038, 2034, 2030, 2025, 2021, 2017, 2013, 2009, 2006, 2002, 1999, 1996, 1993, 1990, 1988, 1986, 1984, 1982, 1980, 1979, 1978, 1978, 1977, 1977, 1977, 1978, 1978, 1979, 1980, 1982, 1984, 1986, 1988, 1990, 1993, 1996, 1999, 2002, 2006, 2009, 2013, 2017, 2021, 2025, 2030, 2034, 2038, 2043}; <\/code><\/pre>\n<p>  \u0417\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0430\u0440\u044b\u0439 \u043a\u043e\u0434 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u044d\u0442\u043e.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8a9\/2b9\/7af\/8a92b97af6244015853418f4810f1634.png\"\/><br \/>  \u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0443! \u041f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/cloud.mail.ru\/public\/p1D1dxTboit8\/%D0%A6%D0%90%D0%9F%20%D0%B2%20%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20(100%20%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%BE%D0%BA%2C%20%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D1%81%D0%B8%D0%BD%D1%83%D1%81%D0%BE%D0%B8%D0%B4%D0%B0).flac\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/cloud.mail.ru\/public\/DxqbhBu8UHS2\/Game_in_1986BE92QI%20(%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%80%D1%83%D0%B5%D0%BC%20%D0%B8%20%D0%B2%D0%BE%D1%81%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D0%BC%20%D0%B7%D0%B2%D1%83%D0%BA_%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D1%81%D0%B8%D0%BD%D1%83%D1%81%D0%BE%D0%B8%D0%B4%D0%B0_100%20%D1%87%D0%B0%D1%81%D1%82%D0%B5%D0%B9).rar\">\u0442\u0443\u0442<\/a>. <\/p>\n<h4>\u041b\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0432\u0443\u043a\u0430 \u0441 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u043e\u0439 &gt;3 \u0412\u043e\u043b\u044c\u0442 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u0445, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 \u043a \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430, \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0441\u044f \u0447\u0443\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 \u0437\u0432\u0443\u043a \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041f\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u044f \u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u044d\u0442\u043e \u0438\u0437-\u0437\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u043e\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041d\u043e \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e \u043c\u0435\u043d\u044f \u0434\u043e\u0448\u043b\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0443 \u2014 \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043d\u0435\u0442. \u0422\u0430\u043a \u043a\u0430\u043a \u0437\u0432\u0443\u043a \u043f\u0440\u043e\u043f\u0430\u043b. \u041f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u044e, \u0447\u0442\u043e \u0435\u0449\u0435 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0438 \u044f \u0431\u044b \u0441\u0436\u0435\u0433 \u0437\u0432\u0443\u043a\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443. <br \/>  \u0414\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0437\u0432\u0443\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 <b>Audacity<\/b>. \u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0437\u0432\u0443\u043a \u0432 \u0441\u043a\u043e\u043b\u044c \u0443\u0433\u043e\u0434\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0435\u0433\u043e \u0432 \u043b\u044e\u0431\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 FLAC, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u044b). <br \/>  \u0422\u0430\u043a \u0436\u0435 \u0445\u043e\u0447\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442 \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u0430. \u042d\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0430 \u043c\u043d\u0435 \u0435\u0433\u043e.<\/p>\n<h4>\u0412\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/h4>\n<p>  \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d DMA \u043c\u043e\u0434\u0443\u043b\u044c \u0438 \u0435\u0433\u043e \u0441\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0441 DAC.     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/255513\/\"> http:\/\/habrahabr.ru\/post\/255513\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<br \/>\n<h4>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435.<\/h4>\n<p>  <a href=\"http:\/\/habrahabr.ru\/post\/255479\/\">\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0437\u0432\u0443\u043a\u043e\u043c: \u0435\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u041f\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u0432\u0441\u0435. \u041e\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043e\u0432 \u0434\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f FLAC \u0441 microSD \u043a\u0430\u0440\u0442\u044b. \u041d\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u043e\u0439. \u0422\u0430\u043a \u0447\u0442\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0435\u0435 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u043f\u043e\u043c\u0435\u043d\u044c\u0448\u0435. \u0412 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e.   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-255288","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=255288"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255288\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=255288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=255288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=255288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}