Contr1 Tags1 Inputs1 Outputs1 Variables1 0@0 LibraryRoot LibraryGroup-Таймеры LibraryGroup-Счетчики 0@0 311 0@-506 169 340 0@0 root 1 f312ed87-7cf5-4d84-8c70-acddbca4d91d 0@0 0 5 3 МЕНЮ 100@120 120@120 corner: 198.0d@200 100@120 corner: 218.0d@200 127.46154019677d@134.9999997249d 30@140 50@140 corner: 67.230768722895d@160 30@140 corner: 87.230768722895d@160 54@153.84615363454d 67.230768722895d@140 corner: 87.230768722895d@160 87.230768722895d@150 7.6923072690795d 9.2307687228954d A 398@498 105253861 0.0d 67.230768722895d@150 87.230768722895d@150 corner: 87.230768722895d@150 DT 100@150 120@150 Энкодер eacd491f-fefb-4dc7-a9c5-8e8786cf1a96 b4ae5d57-a3ba-437b-875d-8a77f7bc4ad4 CLK 3b5fa063-e637-4f12-bf56-3b9e9e3ca251 bb90410c-5219-47ec-a98c-0c09ec14f0d9 Value d3b0eafa-4365-4ec7-b639-3c8636ad6745 2947e91f-bd2c-49d1-898d-0b54607945a6 4460c948-0894-4f7e-a34d-8206a5f58758 Энкодер bitWrite(New, 0, DT ); bitWrite(New, 1, CLK ); switch(EncState) { case 2: { if(New == 3) EncData++; if(New == 0) EncData--; break; } case 0: { if(New == 2) EncData++; if(New == 1) EncData--; break; } case 1: { if(New == 0) EncData++; if(New == 3) EncData--; break; } case 3: { if(New == 1) EncData++; if(New == 2) EncData--; break; } } EncState = New; // Записываем новое значение Value =EncData; 455 New ; Byte EncData ; Int EncState ; Byte =0; New =0; EncState =0; EncData f73c9c12-f0e3-4478-8c45-9749c960ae2d 100@140 corner: 120@160 4 30@160 50@160 corner: 65.692307269079d@180 30@160 corner: 85.692307269079d@180 54@173.84615363454d 85.692307269079d@170 7.6923072690795d 7.6923072690795d B 398@478 148423499 0.0d 65.692307269079d@170 85.692307269079d@170 corner: 85.692307269079d@170 100@170 120@170 b48af6dd-41ee-46ca-a099-48ca5ae32251 100@160 corner: 120@180 En 100@190 114@190 set f2d471b9-5289-457a-bc21-f764127e3010 Установка нового значения 28090bf6-a122-459a-8767-3fce99569986 V 4f18cde2-1a7a-47f7-add0-8a7db0742b6f Значение c5442471-5c51-4a96-8d0b-76d88e28919a 5f7e4d1c-ce83-4c01-a594-72b17d0daf2a Разрешение работы a3e7c3c3-ace8-476c-8d87-3d94db553bfe 6c5c824f-cbdd-4b3c-9342-8cc2ca543e69 87ddde4b-c345-44d3-acf5-a750effd7899 step 2 Импульсов на щелчек 69fdafd3-5e06-4920-975c-6e4e6cd046a4 ec68031b-5d52-4da5-88b1-560a943a3e3d MAX 100 1470fdf9-4c7e-4edb-8877-4e2f25921eeb 6f05019b-7093-4928-acaf-5327ab30dcad MIN -100 e1645f1a-fcb5-477a-afbb-8634e4c59d42 f56c4739-f41d-4d92-b741-fe02d47439c7 if(En){ bitWrite(New, 0, DT ); bitWrite(New, 1, CLK ); switch(EncState) { case 2: { if(New == 3) plus(MaxS); if(New == 0) minus(MinS); break; } case 0: { if(New == 2) plus(MaxS); if(New == 1) minus(MinS); break; } case 1: { if(New == 0) plus(MaxS); if(New == 3) minus(MinS); break; } case 3: { if(New == 1) plus(MaxS); if(New == 2) minus(MinS); break; } } EncState = New; // Записываем новое значение if (set){EncData =V * step ;} Value =EncData / step ; } 518 MaxS= MAX * step; MinS= MIN * step; 39 New =0; byte EncData =0; long EncState =0; byte MaxS ; long MinS ; long if(EncData<MS ){EncData++;} 27 void plus long MS if(EncData>MS ){EncData--;} void minus long MS 100@180 corner: 114@200 6 450@90 470@90 corner: 550@370 450@90 corner: 570@370 496.0d@103.5d 9 260@130 280@130 corner: 340@350 260@130 corner: 360@350 295.0d@144.5d V 260@160 280@160 240.0d@163.5d 260@150 corner: 280@170 110@220 130@220 corner: 210@280 110@220 corner: 230@280 160.0000005502d@233.84615363454d 30@190 50@190 corner: 76.461537445791d@210 30@190 corner: 96.461537445791d@210 54@203.84615363454d 76.461537445791d@190 corner: 96.461537445791d@210 96.461537445791d@200 7.6923072690795d 18.461537445791d SW 398@518 75108618 0.0d 76.461537445791d@200 14 260@70 280@70 corner: 340@110 260@70 corner: 360@110 299.23076982329d@83.84615363454d 260@90 corner: 274@110 Reset 450@140 470@140 370@100 corner: 370@140 Q 8.4615379959874d 340@100 360@100 340@90 corner: 360@110 260@100 1000 EN 274@100 96.461537445791d@100 corner: 96.461537445791d@250 C 110@250 124@250 110@240 corner: 124@260 8 40@260 60@260 corner: 79.538460903619d@280 40@260 corner: 99.538460903619d@280 64@273.84615363454d 40@270 60@270 40@260 corner: 60@280 79.538460903619d@260 corner: 99.538460903619d@280 99.538460903619d@270 7.6923072690795d 11.538460903619d R1 0.0d 79.538460903619d@270 99.538460903619d@270 corner: 99.538460903619d@270 R 110@270 130@270 110@260 corner: 130@280 7 230@240 250@240 corner: 269.53846090362d@260 230@240 corner: 289.53846090362d@260 254@253.84615363454d 230@240 corner: 250@260 269.53846090362d@250 289.53846090362d@250 269.53846090362d@240 corner: 289.53846090362d@260 230@250 7.6923072690795d 11.538460903619d 250@250 230@250 corner: 230@250 >L 13.076922357435d 210@250 230@250 210@240 corner: 230@260 210@260 corner: 230@280 230@270 10 up V 10.769230176711d 210@270 240@180 corner: 240@270 Sel 260@180 280@180 260@170 corner: 280@190 340@150 corner: 360@170 M-1 450@200 470@200 360@180 corner: 360@200 Q1 14.0d 340@180 360@180 340@170 corner: 360@190 M-2 450@220 470@220 370@200 corner: 370@220 Q2 15.0d 340@200 360@200 340@190 corner: 360@210 M-3 450@240 470@240 360@220 corner: 360@240 Q3 15.0d 340@220 360@220 340@210 corner: 360@230 M-4 450@260 470@260 370@240 corner: 370@260 Q4 16.0d 340@240 360@240 340@230 corner: 360@250 M-5 450@280 470@280 360@260 corner: 360@280 Q5 15.0d 340@260 360@260 340@250 corner: 360@270 M-6 450@300 470@300 370@280 corner: 370@300 Q6 15.0d 340@280 360@280 340@270 corner: 360@290 M-7 450@320 470@320 360@300 corner: 360@320 Q7 15.0d 340@300 360@300 340@290 corner: 360@310 M-8 450@340 470@340 370@320 corner: 370@340 Q8 15.0d 340@320 360@320 340@310 corner: 360@330 M-9 450@360 470@360 360@340 corner: 360@360 Q9 15.0d 340@340 360@340 340@330 corner: 360@350 360@160 Q0 15.0d 340@160 370@150 390@150 corner: 428.0d@170 370@150 corner: 448.0d@170 394@164.5d 370@150 corner: 384@170 0.0d 428.0d@160 448.0d@160 428.0d@150 corner: 448.0d@170 370@160 9.0d 30.0d EN_M 384@160 360@120 corner: 360@160 En 450@120 464@120 450@110 corner: 464@130 450@130 corner: 470@150 450@150 corner: 470@170 Down 25.384613987962d 198.0d@190 218.0d@190 Энкодер_имп imp+ d9604f1e-14a2-4660-8ea6-6b3f45a46d17 Импульс плюс 847173d0-5535-4147-b683-9a7d18c73536 imp- 481885b3-55ec-46d6-b9ae-497ce1a6d72b импульс минус f5732ab9-ca43-4d50-9186-a1362feb63cd 507a7437-a912-4426-9900-2f6763706543 Энкодер_имп Блок производит счет на увелечения/уменьшения на еденицу. С возможностью установки нижнего/верхнего пределов, досчитывая до которых счетчик останавливается. Так же есть вход разрешения (EN). Параметры MAX - верхний предел увеличения, счет прекращается MIN - нижний предел уменьшения, счет прекращается Set -Импульсов на щелчек Так как у некотрых энкодров есть еще тактильные щелчки при вращении, и при одном щелчке бывает выдает не 1 импульс а 2 или 4 ( может и больше) Вел делитель для получения соответствия щелчек-изменние числа. Входа DT , CLK - суда подключить одноименные выхода инкодора . При настройки входов СНЯТЬ галочки: Защита от дребизга и Включить подтягивающий резистор V - Значение которое будет установелно в блок при наличии 1 на входе set set - вход установки значения (пока подано 1 в боке устанавливается значения с входа V) En - вход разрешения работы блока. 890 4d8cf0ad-68b8-4bae-bf19-b417e0053ed2 imp+ =0; imp- =0; if(En){ bitWrite(New, 0, DT ); bitWrite(New, 1, CLK ); switch(EncState) { case 2: { if(New == 3) plus(); if(New == 0) minus(); break; } case 0: { if(New == 2) plus(); if(New == 1) minus(); break; } case 1: { if(New == 0) plus(); if(New == 3) minus(); break; } case 3: { if(New == 1) plus(); if(New == 2) minus(); break; } } EncState = New; // Записываем новое значение } 449 New =0; byte EncData =0; long EncState =0; byte imp+ =1; void plus imp- =1; void minus 2e4cd0e5-acd6-4a71-b657-0c3070bd252f 218.0d@180 corner: 218.0d@190 220.0d@189.61538463655d corner: 224.61538436145d@190.38461536345d 443.38461563855d@179.61538463655d corner: 448.0d@180.38461536345d - V- 450@180 470@180 450@170 corner: 470@190 450@190 corner: 470@210 450@210 corner: 470@230 450@230 corner: 470@250 450@250 corner: 470@270 450@270 corner: 470@290 450@290 corner: 470@310 450@310 corner: 470@330 450@330 corner: 470@350 450@350 corner: 470@370 11 640@100 660@100 corner: 740@160 640@100 corner: 760@160 687.5d@113.5d 13 550@120 570@120 corner: 608.0d@140 550@120 corner: 628.0d@140 574@134.5d 550@130 570@130 550@120 corner: 570@140 608.0d@120 corner: 628.0d@140 628.0d@130 9.0d 30.0d 0.0d 608.0d@130 12 640@170 660@170 corner: 740@230 640@170 corner: 760@230 687.5d@183.5d 640@190 corner: 660@210 ValStr 32.0d 550@360 570@360 580@220 corner: 580@360 D 640@220 660@220 640@210 corner: 660@230 640@200 16 27 EN 660@200 628.0d@130 corner: 628.0d@200 640@130 660@130 640@120 corner: 660@140 640@140 corner: 660@160 640@150 660@150 570@150 corner: 570@340 Name 29.0d 550@340 570@340 550@330 corner: 570@350 550@350 corner: 570@370 450@160 Menu 251040324 speed, mm/s 151458870 Graphics.ColorValue blue r0g0b31 dec 1 200 start mov delay 26038482 Graphics.ColorValue brown r15g7b7 2 0.1 start arc delay 216371576 3 0.1 start wire delay 271729339 4 0.1 stop mov delay 502712486 5 0.1 stop arc delay 271728373 6 0.1 stop wire delay 78156503 7 0.1 start AVC down 209716152 8 0.1 AVC down time 154988877 9 0.1 OneStepAtEachPulse 2000 500 4000 250 V+ 470@160 218.0d@160 corner: 218.0d@170 220.0d@167.30769245582d corner: 227.69230726908d@172.69230754418d 440.30769273092d@157.30769245582d corner: 448.0d@162.69230754418d + Up 13.076922357435d 198.0d@170 218.0d@170 58a75abf-e18a-43fc-8618-7b31b40e763d 198.0d@160 corner: 218.0d@180 198.0d@180 corner: 218.0d@200 ae358df4-cfd7-4165-a910-a7cb578e5b2e Блок производит выдачу импульсов больше меньше Так же есть вход разрешения (EN). Параметры Set -Импульсов на щелчек Так как у некотрых энкодров есть еще тактильные щелчки при вращении, и при одном щелчке бывает выдает не 1 импульс а 2 или 4 ( может и больше) Вел делитель для получения соответствия щелчек-изменние числа. Входа DT , CLK - суда подключить одноименные выхода инкодора . При настройки входов СНЯТЬ галочки: Защита от дребизга и Включить подтягивающий резистор En - вход разрешения работы блока. Выхода UP - выход выдает импульс при повороте вправо (+) Down - выход выдает импульс при повороте влево (-) 627 Up =0; Down =0; if(En){ bitWrite(New, 0, DT ); bitWrite(New, 1, CLK ); switch(EncState) { case 2: { if(New == 3) plus(); if(New == 0) minus(); break; } case 0: { if(New == 2) plus(); if(New == 1) minus(); break; } case 1: { if(New == 0) plus(); if(New == 3) minus(); break; } case 3: { if(New == 1) plus(); if(New == 2) minus(); break; } } EncState = New; // Записываем новое значение } New =0; byte EncData =0; long EncState =0; byte ps =0; byte ms =0; byte ps++; if(ps>= step ){ Up =1; ps=0; } 38 ms++; if(ms>= step ){ Down =1; ms=0; } 40 78.0d 30@290 30@290 corner: 232.15383536153d@352.15384416467d left ВХОДЫ ПОДТЯНУТЫ К ПЛЮС ПИТАНИЮ ТАК ЖЕ ОБЯЗАТЕЛЬНО ПОДТЯНИТЕ К ПЛЮСУ НАРУЖНИМИ РЕЗИСТОРАМИ ПО 4,7 КОМ ВХОДЫ ПОДТЯНУТЫ К ПЛЮС ПИТАНИЮ 196.15383536153d 3@12.230768722895d 9.2307687228954d ТАК ЖЕ ОБЯЗАТЕЛЬНО ПОДТЯНИТЕ К 189.23075881935d 3@26.461537445791d 9.2307687228954d ПЛЮСУ НАРУЖНИМИ РЕЗИСТОРАМИ 184.61537445791d 3@39.923075441778d 8.4615379959874d ПО 4,7 КОМ 61.538458152636d 3@54.153844164673d 9.2307687228954d 20@30 20@30 corner: 211.0d@83.0d В НАСТРОЙКАХ БЛОКА ЭНКОДЕРА НАСТРОЙТЕ СКОЛЬКО ИМПУЛЬСОВ НА ЩЕЛЧОК В ВАШЕМ ЭНКОДЕРЕ В НАСТРОЙКАХ БЛОКА ЭНКОДЕРА 179.0d 3@15.0d 12.0d НАСТРОЙТЕ СКОЛЬКО ИМПУЛЬСОВ 185.0d 3@31.0d 11.0d НА ЩЕЛЧОК В ВАШЕМ ЭНКОДЕРЕ 173.0d 3@45.0d 9.0d 451.0d ДИСПЛЕЙ + ТАЙМЕРЫ 590@10 610@10 corner: 670@70 590@10 corner: 690@70 628.5d@23.5d 590@130 610@130 corner: 670@190 590@130 corner: 690@190 628.5d@143.5d 590@150 corner: 610@170 490@150 510@150 corner: 560@190 490@150 corner: 580@190 511.5d@163.5d 15 390@130 410@130 corner: 470@190 390@130 corner: 490@190 425.5d@144.0d 31 170@210 190@210 corner: 230@250 170@210 corner: 250@250 193.5d@223.5d 170@240 28 260@190 280@190 corner: 360@250 260@190 corner: 380@250 307.5d@203.5d 23 170@10 190@10 corner: 228.0d@30 170@10 corner: 248.0d@30 194@24.5d 170@20 248.0d@20 9.0d 30.0d 0.0d 234.0d@20 18 260@70 280@70 corner: 360@130 260@70 corner: 380@130 307.5d@83.5d 260@100 21 170@90 190@90 corner: 230@130 170@90 corner: 250@130 193.5d@103.5d 30@70 50@70 corner: 130@110 30@70 corner: 150@110 62.0d@83.5d 150@100 Q 9.0d 130@100 390@10 410@10 corner: 470@70 390@10 corner: 490@70 425.5d@24.0d 390@40 I2 390@60 410@60 365.0d@63.5d 490@30 510@30 corner: 560@70 490@30 corner: 580@70 511.5d@43.5d 490@60 Val 590@60 610@60 580@60 corner: 580@60 Q 9.0d 560@60 580@60 Fl 510@60 490@60 corner: 490@60 9.0d 470@60 490@60 I1 410@40 160@40 corner: 160@120 152@96.5d corner: 164.0d@103.5d 156.0d@116.5d corner: 168.0d@123.5d 376.0d@36.5d corner: 388.0d@43.5d L1 I 170@120 190@120 170@110 corner: 190@130 230@110 corner: 250@130 250@120 Q 9.0d 230@120 250@120 corner: 250@120 260@120 280@120 280@100 19 260@130 280@130 corner: 360@190 260@130 corner: 380@190 307.5d@143.5d 260@150 corner: 280@170 22 170@150 190@150 corner: 230@190 170@150 corner: 250@190 193.5d@163.5d 390@70 410@70 corner: 470@130 390@70 corner: 490@130 425.5d@84.0d 390@100 390@120 410@120 365.0d@123.5d 490@90 510@90 corner: 560@130 490@90 corner: 580@130 511.5d@103.5d 490@120 590@70 610@70 corner: 670@130 590@70 corner: 690@130 628.5d@83.5d EN 590@100 610@100 590@90 corner: 610@110 590@110 corner: 610@130 86 720@70 740@70 corner: 800@130 720@70 corner: 820@130 759.0d@83.5d 720@100 74 490@270 510@270 corner: 560@310 490@270 corner: 580@310 511.5d@283.5d 68 390@250 410@250 corner: 470@310 390@250 corner: 490@310 425.5d@264.0d 64 170@330 190@330 corner: 230@370 170@330 corner: 250@370 193.5d@343.5d 170@360 58 260@310 280@310 corner: 360@370 260@310 corner: 380@370 307.5d@323.5d 260@340 280@340 260@360 280@360 250@360 corner: 250@360 9.0d 230@360 250@360 190@360 61 30@310 50@310 corner: 130@350 30@310 corner: 150@350 62.0d@323.5d 150@340 9.0d 130@340 160@280 corner: 160@360 155.0d@356.5d corner: 168.0d@363.5d 152@336.5d corner: 165.0d@343.5d 375.0d@276.5d corner: 388.0d@283.5d L5 390@280 410@280 390@300 410@300 365.0d@303.5d 490@300 9.0d 470@300 490@300 corner: 490@300 490@300 510@300 580@300 9.0d 560@300 610@120 corner: 610@300 699.0d@116.5d corner: 718.0d@123.5d 582@296.5d corner: 601.0d@303.5d L12 Val 720@120 740@120 78 1020@100 1040@100 corner: 1056.0d@120 1020@100 corner: 1076.0d@120 1044@113.5d 1020@110 7.0d 8.0d 8 396@386 124533405 1040@110 820@110 corner: 820@120 Q 9.0d 800@120 820@120 EN 740@100 690@100 corner: 690@120 Q 9.0d 670@120 690@120 670@110 corner: 690@130 590@120 610@120 580@120 corner: 580@120 9.0d 560@120 580@120 510@120 490@120 corner: 490@120 9.0d 470@120 490@120 410@100 30@130 50@130 corner: 130@170 30@130 corner: 150@170 62.0d@143.5d 150@160 9.0d 130@160 150@100 corner: 150@180 375.0d@96.5d corner: 388.0d@103.5d 152@156.5d corner: 165.0d@163.5d 155.0d@176.5d corner: 168.0d@183.5d L2 170@180 190@180 250@180 9.0d 230@180 250@180 corner: 250@180 260@180 280@180 260@170 corner: 280@190 260@160 280@160 29 260@250 280@250 corner: 360@310 260@250 corner: 380@310 307.5d@263.5d 260@280 30 170@270 190@270 corner: 230@310 170@270 corner: 250@310 193.5d@283.5d 35 30@250 50@250 corner: 130@290 30@250 corner: 150@290 62.0d@263.5d 150@280 9.0d 130@280 67 390@190 410@190 corner: 470@250 390@190 corner: 490@250 425.5d@204.0d 390@220 390@240 410@240 365.0d@243.5d 71 490@210 510@210 corner: 560@250 490@210 corner: 580@250 511.5d@223.5d 490@230 corner: 510@250 85 720@10 740@10 corner: 800@70 720@10 corner: 820@70 759.0d@23.5d 9.0d 670@60 690@60 690@40 corner: 690@60 720@40 740@40 720@60 103 930@30 950@30 corner: 990@90 930@30 corner: 1010@90 961.5d@43.5d 930@60 110 800@600 820@600 corner: 860@660 800@600 corner: 880@660 831.5d@613.5d 105 720@590 740@590 corner: 763.0d@610 720@590 corner: 783.0d@610 744@603.5d 783.0d@600 7.0d 15.0d A0 12@458 186492412 0.0d 763.0d@600 107 1020@400 1040@400 corner: 1063.0d@420 1020@400 corner: 1083.0d@420 1044@413.5d 1020@410 7.0d 15.0d A2 12@498 15830202 1034@410 783.0d@410 corner: 783.0d@630 800@630 814@630 106 720@670 740@670 corner: 762.0d@690 720@670 corner: 782.0d@690 744@683.5d 782.0d@680 7.0d 14.0d A1 12@480 51106097 0.0d 762.0d@680 782.0d@650 corner: 782.0d@680 800@650 814@650 880@650 Q 9.0d 860@650 111 60@650 80@650 corner: 140@690 60@650 corner: 160@690 98.5d@663.5d 60@680 109 180@590 200@590 corner: 260@670 180@590 corner: 280@670 214.0d@603.5d 102 60@570 80@570 corner: 140@630 60@570 corner: 160@630 94.5d@584.0d 30@10 50@10 corner: 130@50 30@10 corner: 150@50 62.0d@23.5d 150@40 9.0d 130@40 70@40 corner: 70@600 45.0d@596.5d corner: 58.0d@603.5d 152@36.5d corner: 165.0d@43.5d L6 I1 60@600 80@600 I2 60@620 80@620 52.0d@623.5d 160@620 Q 9.0d 140@620 160@620 corner: 160@620 0 180@620 200@620 1 180@640 200@640 155.0d@643.5d 180@660 101 280@590 300@590 corner: 381.0d@630 280@590 corner: 401.0d@630 305.0d@604.5d 280@620 Генератор_v4 Dimmer Dim 5f351684-eee2-4153-9f33-32b71622bc0d cb801bd3-d822-4aac-80f7-092a9913e79e 42ff8b9d-f6b2-4f68-be90-a2a0bd01f8fb Dimmer Dimmer = Dim; //Задержка для более плавного эффекта мерцания // delay(100); 87 //*********************Настраиваем порты на выход********************** pinMode (3, OUTPUT); digitalWrite(3, LOW); // гасим оответствующий пин Dimmer = 10; //выставим яркость соответствующего диммера в 0 attachInterrupt(0, detect_up, LOW); // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень Timer1.initialize(40); // Интервал срабатывания таймера в мкс Timer1.attachInterrupt(halfcycle); //будет вызыватся каждый раз при отсчете заданого времени Timer1.stop(); Serial.begin(115200); //инициализация порта randomSeed(analogRead(0)); //псевдогенератор случайных чисел будет использовать шумы на аналог пин 0 656 #include <TimerOne.h> tic ; volatile uint8_t data ; uint8_t количество диммеров минус 1 Dimmer ; int tic--; //счетчик if (Dimmer > tic ) digitalWrite(3, HIGH); //управляем выходом (откроем семистор) 113 void halfcycle tic = 200; //обнулить счетчик Timer1.resume(); //запустить таймер attachInterrupt(0, detect_down, HIGH); //перепрограммировать прерывание на другой обработчик 180 void detect_up Timer1.stop(); //остановить таймер digitalWrite(3, LOW); tic = 200; //обнулить счетчик attachInterrupt(0, detect_up, LOW); //перепрограммировать прерывание на другой обработчик 192 void detect_down F_Hz 1a0eface-e8d1-4de8-9c9f-82816c457133 Генератор_v4 На вход - частоту Максимум 80 кгц( или около того) Выход пин 4 Автор Sancho (omelchuk890) 90 tic = F_Hz ; if( tic != tic_old ){ tic_old = tic; if( tic >5) {StartTimer1(timer_interrupt, (500000 / tic-1) ); RestartTimer1();} // отнимем 1 мсек на время работы переключения выхода } 196 StartTimer1(timer_interrupt, 50); D12_Out; 53 #include <CyberLib.h> tic ; volatile uint32_t tic_old ; uint32_t D12_Inv; //управляем выходом void timer_interrupt 81.0d 300@620 280@620 corner: 280@660 9.0d 260@660 280@660 S 200@660 160@660 corner: 160@680 9.0d 140@680 160@680 3000 EN 80@680 60@80 corner: 60@680 909.0d@76.5d corner: 928.0d@83.5d 882@646.5d corner: 901.0d@653.5d 39.0d@676.5d corner: 58.0d@683.5d L15 930@80 950@80 77 1020@70 1040@70 corner: 1056.0d@90 1020@70 corner: 1076.0d@90 1044@83.5d 1020@80 7.0d 8.0d 7 398@418 197900210 1034@80 1010@80 corner: 1010@80 9.0d 990@80 1010@80 950@60 820@60 corner: 820@60 9.0d 800@60 820@60 740@60 600@60 corner: 600@240 700.0d@56.5d corner: 718.0d@63.5d 582@236.5d corner: 600.0d@243.5d L11 9.0d 560@240 580@240 560@230 corner: 580@250 490@240 510@240 490@240 corner: 490@240 9.0d 470@240 490@240 410@220 150@220 corner: 150@300 154.0d@296.5d corner: 168.0d@303.5d 152@276.5d corner: 166.0d@283.5d 374.0d@216.5d corner: 388.0d@223.5d L4 170@300 190@300 250@300 9.0d 230@300 250@300 corner: 250@300 260@300 280@300 280@280 59 260@370 280@370 corner: 360@430 260@370 corner: 380@430 307.5d@383.5d 260@400 65 170@390 190@390 corner: 230@430 170@390 corner: 250@430 193.5d@403.5d 62 30@370 50@370 corner: 130@410 30@370 corner: 150@410 62.0d@383.5d 150@400 9.0d 130@400 69 390@310 410@310 corner: 470@370 390@310 corner: 490@370 425.5d@324.0d 390@340 390@360 410@360 365.0d@363.5d 72 490@330 510@330 corner: 560@370 490@330 corner: 580@370 511.5d@343.5d 490@360 720@130 740@130 corner: 800@190 720@130 corner: 820@190 759.0d@143.5d 9.0d 670@180 690@180 690@160 corner: 690@180 720@160 740@160 720@180 79 1020@130 1040@130 corner: 1056.0d@150 1020@130 corner: 1076.0d@150 1044@143.5d 1020@140 7.0d 8.0d 9 396@364 78792891 1040@140 820@140 corner: 820@180 9.0d 800@180 820@180 740@180 580@180 corner: 580@360 699.0d@176.5d corner: 718.0d@183.5d 582@356.5d corner: 601.0d@363.5d L13 9.0d 560@360 580@360 510@360 490@360 corner: 490@360 9.0d 470@360 490@360 410@340 150@340 corner: 150@420 155.0d@416.5d corner: 168.0d@423.5d 152@396.5d corner: 165.0d@403.5d 375.0d@336.5d corner: 388.0d@343.5d L8 170@420 190@420 250@420 9.0d 230@420 250@420 corner: 250@420 260@420 280@420 280@400 60 260@430 280@430 corner: 360@490 260@430 corner: 380@490 307.5d@443.5d 260@460 66 170@450 190@450 corner: 230@490 170@450 corner: 250@490 193.5d@463.5d 63 30@430 50@430 corner: 130@470 30@430 corner: 150@470 62.0d@443.5d 150@460 9.0d 130@460 99 390@430 410@430 corner: 470@490 390@430 corner: 490@490 425.5d@444.0d 390@460 390@480 410@480 365.0d@483.5d 490@450 510@450 corner: 560@490 490@450 corner: 580@490 511.5d@463.5d 490@480 98 590@430 610@430 corner: 670@490 590@430 corner: 690@490 628.5d@443.5d EN 590@460 610@460 590@480 80 720@220 740@220 corner: 800@280 720@220 corner: 820@280 760.5d@233.5d 720@240 corner: 740@260 73 510@390 530@390 corner: 580@430 510@390 corner: 600@430 531.5d@403.5d 70 390@370 410@370 corner: 470@430 390@370 corner: 490@430 425.5d@384.0d 95 30@490 50@490 corner: 130@530 30@490 corner: 150@530 62.0d@503.5d 150@520 9.0d 130@520 96 170@510 190@510 corner: 230@550 170@510 corner: 250@550 193.5d@523.5d 170@540 97 260@490 280@490 corner: 360@550 260@490 corner: 380@550 307.5d@503.5d 260@520 280@520 260@540 280@540 250@540 corner: 250@540 9.0d 230@540 250@540 190@540 160@400 corner: 160@540 152@516.5d corner: 165.0d@523.5d 155.0d@536.5d corner: 168.0d@543.5d 375.0d@396.5d corner: 388.0d@403.5d L9 390@400 410@400 390@420 410@420 365.0d@423.5d 490@420 9.0d 470@420 490@420 corner: 490@420 510@420 530@420 600@420 9.0d 580@420 600@270 corner: 600@420 OnVal 720@270 740@270 720@260 corner: 740@280 84 1020@280 1040@280 corner: 1061.0d@300 1020@280 corner: 1081.0d@300 1044@293.5d 1020@290 7.0d 13.0d 13 396@286 200657154 1040@290 830@270 corner: 830@290 9.0d 800@270 820@270 800@260 corner: 820@280 720@250 single EN 740@250 690@250 corner: 690@480 Q 9.0d 670@480 690@480 Val 610@480 580@480 corner: 580@480 9.0d 560@480 580@480 510@480 490@480 corner: 490@480 9.0d 470@480 490@480 410@460 150@460 corner: 150@480 148.0d@476.5d corner: 168.0d@483.5d 152@456.5d corner: 172.0d@463.5d 368.0d@456.5d corner: 388.0d@463.5d L14 170@480 190@480 250@480 9.0d 230@480 250@480 corner: 250@480 260@480 280@480 280@460 248.0d@20 corner: 248.0d@520 250.0d@16.5d corner: 263.0d@23.5d 245.0d@96.5d corner: 258.0d@103.5d 245.0d@156.5d corner: 258.0d@163.5d 245.0d@216.5d corner: 258.0d@223.5d 245.0d@276.5d corner: 258.0d@283.5d 245.0d@336.5d corner: 258.0d@343.5d 245.0d@396.5d corner: 258.0d@403.5d 245.0d@456.5d corner: 258.0d@463.5d 245.0d@516.5d corner: 258.0d@523.5d L7 260@220 280@220 260@240 280@240 250@240 corner: 250@240 9.0d 230@240 250@240 190@240 34 30@190 50@190 corner: 130@230 30@190 corner: 150@230 62.0d@203.5d 150@220 9.0d 130@220 160@160 corner: 160@240 155.0d@236.5d corner: 168.0d@243.5d 152@216.5d corner: 165.0d@223.5d 375.0d@156.5d corner: 388.0d@163.5d L3 390@160 410@160 390@150 corner: 410@170 390@180 410@180 365.0d@183.5d 390@170 corner: 410@190 470@170 corner: 490@190 490@180 9.0d 470@180 490@180 corner: 490@180 490@180 510@180 580@180 9.0d 560@180 620@180 corner: 620@180 590@180 610@180 590@170 corner: 610@190 670@170 corner: 690@190 590@160 610@160 92 720@330 740@330 corner: 800@390 720@330 corner: 820@390 755.0d@344.5d 720@360 740@360 700.0d@363.5d 89 590@500 610@500 corner: 690@560 590@500 corner: 710@560 639.0d@513.5d 93 500@500 520@500 corner: 560@540 500@500 corner: 580@540 536.0d@513.5d 52 440@590 460@590 corner: 476.0d@610 440@590 corner: 496.0d@610 464@603.5d 496.0d@600 7.0d 8.0d 5 398@458 113216864 0.0d 482.0d@600 496.0d@530 corner: 496.0d@600 500@530 520@530 580@530 9.0d 560@530 580@530 corner: 580@530 C 590@530 610@530 91 550@540 570@540 corner: 589.0d@560 550@540 corner: 609.0d@560 574@552.5d 550@550 609.0d@550 5.0d 11.0d ss 0.0d 589.0d@550 590@550 corner: 590@550 R 590@550 610@550 720@520 740@520 corner: 759.0d@540 720@520 corner: 779.0d@540 744@532.5d 720@530 759.0d@530 779.0d@530 5.0d 11.0d 740@530 720@530 corner: 720@530 >L 14.0d 690@530 710@530 710@550 V 10.0d 690@550 710@380 corner: 710@550 720@380 740@380 94 1020@200 1040@200 corner: 1060.0d@220 1020@200 corner: 1080.0d@220 1044@213.5d 1020@210 7.0d 12.0d 11 396@324 61169229 1040@210 820@210 corner: 820@360 15.0d 800@360 820@360 820@380 14.0d 800@380 88 1020@170 1040@170 corner: 1061.0d@190 1020@170 corner: 1081.0d@190 1044@183.5d 1020@180 7.0d 13.0d 10 396@346 206579287 1040@180 590@40 corner: 590@460 569.0d@156.5d corner: 588.0d@163.5d 822@376.5d corner: 841.0d@383.5d 569.0d@96.5d corner: 588.0d@103.5d 569.0d@36.5d corner: 588.0d@43.5d 569.0d@456.5d corner: 588.0d@463.5d 999.0d@176.5d corner: 1018.0d@183.5d L10 590@40 610@40 590@30 corner: 610@50 590@50 corner: 610@70 670@50 corner: 690@70 410@590 410@590 corner: 452.0d@608.0d center START 36.0d 3@10.0d 7.0d 1070@170 1070@170 corner: 1098.0d@188.0d RUN 22.0d 3@10.0d 7.0d 1070@280 1070@280 corner: 1099.0d@298.0d AVC 23.0d 3@10.0d 7.0d 1070@130 1070@130 corner: 1104.0d@148.0d WIRE 28.0d 3@10.0d 7.0d 1070@100 1070@100 corner: 1099.0d@118.0d ARC 23.0d 3@10.0d 7.0d 1070@70 1070@70 corner: 1108.0d@88.0d MOVE 32.0d 3@10.0d 7.0d 1070@200 1070@200 corner: 1106.0d@218.0d STOP 30.0d 3@10.0d 7.0d 680@630 680@630 corner: 764.0d@649.0d MANUAL MOVE 78.0d 3@11.0d 8.0d 1070@400 1070@400 corner: 1095.0d@418.0d DIR 19.0d 3@10.0d 7.0d 1040@240 1040@240 corner: 1102.0d@259.0d PULSE 12 56.0d 3@11.0d 8.0d 771.0d 9600 arduinoIDE 179 1024 109988601 Arduino Uno 142360727