в вашем #158 строки 5....15 - это трёхкратное мигание о том что конец игры ?
вы делаете функцию вывода колва жизней... и вводите туда обработку признака конца игры ? для этого нужно написать другую функцию.. это просто моё мнение :)
функции нижнего уровня надо делать наиболее простыми, а функции постарше - можно слепить из нескольких младших....
аналог вашей функции в моём коде в строке 107 ( для аргумента в ней хватит и байта ) - voidOutByteLive(byte_n)
функцию вывода байта на отображение можно сделать универсальной для СД_задание и СД_жизнь, а неё будет два аргумента - на какие СД выводить и что выводить.... я пока не знаю как прописать аргумент_1 :(
....может быть kisoft заглянет подскажет ?
отобразить СД_з и СД_ж в два массива по три значения и
level = 1
1
....waiting 0 mS
....waiting 1 mS
....waiting 1 mS
....waiting 2 mS
....waiting 20 mS
....waiting 40 mS
....waiting 60 mS
....waiting 79 mS
....waiting 99 mS
....waiting 119 mS
....waiting 140 mS
....waiting 160 mS
....waiting 182 mS
....waiting 202 mS
....waiting 223 mS
....waiting 244 mS
....waiting 265 mS
....waiting 285 mS
....waiting 307 mS
....waiting 327 mS
....waiting 348 mS
....waiting 369 mS
....waiting 390 mS
....waiting 410 mS
....waiting 431 mS
....waiting 452 mS
....waiting 472 mS
....waiting 493 mS
....waiting 514 mS
....waiting 535 mS
....waiting 555 mS
....waiting 577 mS
....waiting 597 mS
....waiting 618 mS
....waiting 639 mS
....waiting 660 mS
....waiting 680 mS
....waiting 702 mS
....waiting 722 mS
....waiting 743 mS
....waiting 763 mS
....waiting 785 mS
....waiting 805 mS
....waiting 826 mS
....waiting 847 mS
....waiting 868 mS
....waiting 888 mS
....waiting 910 mS
....waiting 930 mS
....waiting 951 mS
....waiting 972 mS
....waiting 993 mS
....waiting 1013 mS
....waiting 1036 mS
....waiting 1057 mS
....waiting 1079 mS
....waiting 1101 mS
....waiting 1123 mS
....waiting 1144 mS
....waiting 1167 mS
....waiting 1188 mS
....waiting 1210 mS
***********************
level = 2
2
4
....waiting 0 mS
....waiting 1 mS
....waiting 1 mS
....waiting 2 mS
....waiting 19 mS
....waiting 40 mS
....waiting 59 mS
....waiting 79 mS
....waiting 99 mS
....waiting 118 mS
....waiting 139 mS
....waiting 159 mS
....waiting 181 mS
....waiting 201 mS
....waiting 222 mS
....waiting 243 mS
....waiting 264 mS
....waiting 284 mS
....waiting 306 mS
....waiting 326 mS
....waiting 347 mS
....waiting 368 mS
....waiting 389 mS
....waiting 409 mS
....waiting 431 mS
....waiting 451 mS
....waiting 472 mS
....waiting 492 mS
....waiting 514 mS
....waiting 534 mS
....waiting 555 mS
....waiting 576 mS
....waiting 597 mS
....waiting 617 mS
....waiting 639 mS
....waiting 659 mS
....waiting 680 mS
....waiting 701 mS
....waiting 722 mS
....waiting 742 mS
....waiting 764 mS
....waiting 784 mS
....waiting 805 mS
....waiting 825 mS
....waiting 847 mS
....waiting 867 mS
....waiting 888 mS
....waiting 909 mS
....waiting 929 mS
....waiting 950 mS
....waiting 971 mS
....waiting 992 mS
....waiting 1012 mS
....waiting 1035 mS
....waiting 1056 mS
....waiting 1078 mS
....waiting 1101 mS
....waiting 1122 mS
....waiting 1144 mS
....waiting 1166 mS
....waiting 1188 mS
....waiting 1209 mS
....waiting 1232 mS
....waiting 1253 mS
....waiting 1275 mS
....waiting 1297 mS
....waiting 1319 mS
....waiting 1340 mS
....waiting 1363 mS
....waiting 1384 mS
....waiting 1406 mS
***********************
level = 3
1
4
4
....waiting 0 mS
....waiting 0 mS
....waiting 1 mS
....waiting 1 mS
....waiting 20 mS
....waiting 39 mS
....waiting 60 mS
....waiting 79 mS
....waiting 99 mS
....waiting 118 mS
....waiting 140 mS
....waiting 160 mS
....waiting 181 mS
....waiting 202 mS
....waiting 223 mS
....waiting 243 mS
....waiting 265 mS
....waiting 285 mS
....waiting 305 mS
....waiting 327 mS
....waiting 347 mS
....waiting 368 mS
....waiting 389 mS
....waiting 410 mS
....waiting 430 mS
....waiting 451 mS
....waiting 472 mS
....waiting 493 mS
....waiting 513 mS
....waiting 535 mS
....waiting 555 mS
....waiting 576 mS
....waiting 597 mS
....waiting 618 mS
....waiting 638 mS
....waiting 660 mS
....waiting 680 mS
....waiting 701 mS
....waiting 722 mS
....waiting 743 mS
....waiting 763 mS
....waiting 784 mS
....waiting 805 mS
....waiting 826 mS
....waiting 846 mS
....waiting 868 mS
....waiting 888 mS
....waiting 909 mS
....waiting 930 mS
....waiting 951 mS
....waiting 971 mS
....waiting 993 mS
....waiting 1013 mS
....waiting 1035 mS
....waiting 1057 mS
....waiting 1079 mS
....waiting 1100 mS
....waiting 1123 mS
....waiting 1144 mS
....waiting 1166 mS
....waiting 1188 mS
....waiting 1210 mS
....waiting 1231 mS
....waiting 1254 mS
....waiting 1275 mS
....waiting 1297 mS
....waiting 1318 mS
....waiting 1341 mS
....waiting 1362 mS
....waiting 1384 mS
....waiting 1406 mS
....waiting 1428 mS
....waiting 1449 mS
....waiting 1472 mS
....waiting 1493 mS
....waiting 1515 mS
....waiting 1537 mS
....waiting 1559 mS
....waiting 1580 mS
....waiting 1603 mS
***********************
level = 4
2
2
2
1
....waiting 0 mS
....waiting 1 mS
....waiting 1 mS
....waiting 2 mS
....waiting 20 mS
....waiting 39 mS
....waiting 60 mS
....waiting 79 mS
....waiting 99 mS
....waiting 119 mS
....waiting 140 mS
....waiting 160 mS
....waiting 182 mS
....waiting 202 mS
....waiting 222 mS
....waiting 244 mS
....waiting 264 mS
....waiting 285 mS
....waiting 305 mS
....waiting 327 mS
....waiting 347 mS
....waiting 368 mS
....waiting 389 mS
....waiting 410 mS
....waiting 430 mS
....waiting 452 mS
....waiting 472 mS
....waiting 493 mS
....waiting 514 mS
....waiting 535 mS
....waiting 555 mS
....waiting 577 mS
....waiting 597 mS
....waiting 618 mS
....waiting 638 mS
....waiting 660 mS
....waiting 680 mS
....waiting 701 mS
....waiting 722 mS
....waiting 743 mS
....waiting 763 mS
....waiting 785 mS
....waiting 805 mS
....waiting 826 mS
....waiting 847 mS
....waiting 868 mS
....waiting 888 mS
....waiting 910 mS
....waiting 930 mS
....waiting 951 mS
....waiting 971 mS
....waiting 993 mS
....waiting 1013 mS
....waiting 1034 mS
....waiting 1057 mS
....waiting 1079 mS
....waiting 1100 mS
....waiting 1123 mS
....waiting 1144 mS
....waiting 1166 mS
....waiting 1188 mS
....waiting 1210 mS
....waiting 1231 mS
....waiting 1254 mS
....waiting 1275 mS
....waiting 1297 mS
....waiting 1319 mS
....waiting 1341 mS
....waiting 1362 mS
....waiting 1385 mS
....waiting 1406 mS
....waiting 1428 mS
....waiting 1450 mS
....waiting 1472 mS
....waiting 1493 mS
....waiting 1516 mS
....waiting 1537 mS
....waiting 1559 mS
....waiting 1581 mS
....waiting 1603 mS
....waiting 1624 mS
....waiting 1647 mS
....waiting 1668 mS
....waiting 1690 mS
....waiting 1712 mS
....waiting 1734 mS
....waiting 1755 mS
....waiting 1778 mS
....waiting 1799 mS
***********************
level = 5
4
1
2
2
2
....waiting 0 mS
....waiting 0 mS
....waiting 1 mS
....waiting 1 mS
....waiting 19 mS
....waiting 38 mS
....waiting 59 mS
....waiting 78 mS
....waiting 98 mS
....waiting 117 mS
....waiting 139 mS
....waiting 159 mS
....waiting 180 mS
....waiting 201 mS
....waiting 222 mS
....waiting 242 mS
....waiting 264 mS
....waiting 284 mS
....waiting 305 mS
....waiting 326 mS
....waiting 347 mS
....waiting 367 mS
....waiting 388 mS
....waiting 409 mS
....waiting 430 mS
....waiting 450 mS
....waiting 472 mS
....waiting 492 mS
....waiting 513 mS
....waiting 534 mS
....waiting 555 mS
....waiting 575 mS
....waiting 597 mS
....waiting 617 mS
....waiting 637 mS
....waiting 659 mS
....waiting 679 mS
....waiting 700 mS
....waiting 720 mS
....waiting 742 mS
....waiting 762 mS
....waiting 783 mS
....waiting 804 mS
....waiting 825 mS
....waiting 845 mS
....waiting 867 mS
....waiting 887 mS
....waiting 908 mS
....waiting 929 mS
....waiting 950 mS
....waiting 970 mS
....waiting 992 mS
....waiting 1012 mS
....waiting 1034 mS
....waiting 1055 mS
....waiting 1078 mS
....waiting 1099 mS
....waiting 1121 mS
....waiting 1143 mS
....waiting 1165 mS
....waiting 1186 mS
....waiting 1209 mS
....waiting 1230 mS
....waiting 1252 mS
....waiting 1274 mS
....waiting 1296 mS
....waiting 1317 mS
....waiting 1340 mS
....waiting 1361 mS
....waiting 1383 mS
....waiting 1405 mS
....waiting 1427 mS
....waiting 1448 mS
....waiting 1471 mS
....waiting 1493 mS
....waiting 1514 mS
....waiting 1537 mS
....waiting 1558 mS
....waiting 1580 mS
....waiting 1602 mS
....waiting 1624 mS
....waiting 1645 mS
....waiting 1668 mS
....waiting 1689 mS
....waiting 1711 mS
....waiting 1733 mS
....waiting 1755 mS
....waiting 1776 mS
....waiting 1799 mS
....waiting 1820 mS
....waiting 1842 mS
....waiting 1864 mS
....waiting 1886 mS
....waiting 1907 mS
....waiting 1930 mS
....waiting 1951 mS
....waiting 1973 mS
....waiting 1995 mS
***********************
level = 6
2
4
1
4
1
1
....waiting 0 mS
....waiting 1 mS
....waiting 1 mS
....waiting 2 mS
....waiting 20 mS
....waiting 40 mS
....waiting 60 mS
....waiting 79 mS
....waiting 98 mS
....waiting 119 mS
....waiting 139 mS
....waiting 160 mS
....waiting 181 mS
....waiting 202 mS
....waiting 222 mS
....waiting 244 mS
....waiting 264 mS
....waiting 285 mS
....waiting 306 mS
....waiting 327 mS
....waiting 347 mS
....waiting 368 mS
....waiting 389 mS
....waiting 410 mS
....waiting 430 mS
....waiting 452 mS
....waiting 472 mS
....waiting 493 mS
....waiting 514 mS
....waiting 535 mS
....waiting 555 mS
....waiting 577 mS
....waiting 597 mS
....waiting 618 mS
....waiting 639 mS
....waiting 660 mS
....waiting 680 mS
....waiting 701 mS
....waiting 722 mS
....waiting 743 mS
....waiting 763 mS
....waiting 785 mS
....waiting 805 mS
....waiting 825 mS
....waiting 847 mS
....waiting 867 mS
....waiting 888 mS
....waiting 909 mS
....waiting 930 mS
....waiting 950 mS
....waiting 972 mS
....waiting 992 mS
....waiting 1013 mS
....waiting 1035 mS
....waiting 1057 mS
....waiting 1078 mS
....waiting 1100 mS
....waiting 1122 mS
....waiting 1144 mS
....waiting 1165 mS
....waiting 1188 mS
....waiting 1209 mS
....waiting 1231 mS
....waiting 1254 mS
....waiting 1275 mS
....waiting 1297 mS
....waiting 1319 mS
....waiting 1341 mS
....waiting 1362 mS
....waiting 1385 mS
....waiting 1406 mS
....waiting 1428 mS
....waiting 1450 mS
....waiting 1472 mS
....waiting 1493 mS
....waiting 1516 mS
....waiting 1537 mS
....waiting 1559 mS
....waiting 1581 mS
....waiting 1603 mS
....waiting 1624 mS
....waiting 1647 mS
....waiting 1668 mS
....waiting 1690 mS
....waiting 1712 mS
....waiting 1734 mS
....waiting 1755 mS
....waiting 1778 mS
....waiting 1799 mS
....waiting 1821 mS
....waiting 1843 mS
....waiting 1865 mS
....waiting 1886 mS
....waiting 1909 mS
....waiting 1930 mS
....waiting 1952 mS
....waiting 1974 mS
....waiting 1996 mS
....waiting 2017 mS
....waiting 2040 mS
....waiting 2061 mS
....waiting 2083 mS
....waiting 2105 mS
....waiting 2127 mS
....waiting 2148 mS
....waiting 2171 mS
....waiting 2193 mS
***********************
level = 7
1
2
4
4
4
1
4
....waiting 0 mS
....waiting 1 mS
....waiting 1 mS
....waiting 2 mS
....waiting 20 mS
....waiting 39 mS
....waiting 59 mS
....waiting 79 mS
....waiting 98 mS
....waiting 119 mS
....waiting 139 mS
....waiting 160 mS
....waiting 181 mS
....waiting 202 mS
....waiting 222 mS
....waiting 244 mS
....waiting 264 mS
....waiting 285 mS
....waiting 305 mS
....waiting 327 mS
....waiting 347 mS
....waiting 368 mS
....waiting 389 mS
....waiting 410 mS
....waiting 430 mS
....waiting 452 mS
....waiting 472 mS
....waiting 493 mS
....waiting 514 mS
....waiting 535 mS
....waiting 555 mS
....waiting 577 mS
....waiting 597 mS
....waiting 618 mS
....waiting 638 mS
....waiting 660 mS
....waiting 680 mS
....waiting 700 mS
....waiting 722 mS
....waiting 742 mS
....waiting 763 mS
....waiting 784 mS
....waiting 805 mS
....waiting 825 mS
....waiting 847 mS
....waiting 867 mS
....waiting 888 mS
....waiting 909 mS
....waiting 930 mS
....waiting 950 mS
....waiting 971 mS
....waiting 992 mS
....waiting 1013 mS
....waiting 1034 mS
....waiting 1057 mS
....waiting 1078 mS
....waiting 1100 mS
....waiting 1122 mS
....waiting 1144 mS
....waiting 1165 mS
....waiting 1188 mS
....waiting 1209 mS
....waiting 1231 mS
....waiting 1253 mS
....waiting 1275 mS
....waiting 1296 mS
....waiting 1319 mS
....waiting 1340 mS
....waiting 1362 mS
....waiting 1385 mS
....waiting 1406 mS
....waiting 1428 mS
....waiting 1450 mS
....waiting 1472 mS
....waiting 1493 mS
....waiting 1516 mS
....waiting 1537 mS
....waiting 1559 mS
....waiting 1581 mS
....waiting 1603 mS
....waiting 1624 mS
....waiting 1647 mS
....waiting 1668 mS
....waiting 1690 mS
....waiting 1712 mS
....waiting 1734 mS
....waiting 1755 mS
....waiting 1778 mS
....waiting 1799 mS
....waiting 1821 mS
....waiting 1843 mS
....waiting 1865 mS
....waiting 1886 mS
....waiting 1909 mS
....waiting 1930 mS
....waiting 1952 mS
....waiting 1974 mS
....waiting 1996 mS
....waiting 2017 mS
....waiting 2039 mS
....waiting 2061 mS
....waiting 2083 mS
....waiting 2104 mS
....waiting 2127 mS
....waiting 2148 mS
....waiting 2170 mS
....waiting 2192 mS
....waiting 2214 mS
....waiting 2235 mS
....waiting 2258 mS
....waiting 2280 mS
....waiting 2301 mS
....waiting 2324 mS
....waiting 2345 mS
....waiting 2367 mS
....waiting 2389 mS
....waiting 2411 mS
***********************
level = 8
1
4
1
4
4
2
1
4
....waiting 0 mS
....waiting 0 mS
....waiting 1 mS
....waiting 1 mS
....waiting 19 mS
....waiting 39 mS
....waiting 59 mS
....waiting 79 mS
....waiting 98 mS
....waiting 118 mS
....waiting 139 mS
....waiting 160 mS
....waiting 180 mS
....waiting 202 mS
....waiting 222 mS
....waiting 243 mS
....waiting 264 mS
....waiting 285 mS
....waiting 305 mS
....waiting 327 mS
....waiting 347 mS
....waiting 367 mS
....waiting 388 mS
....waiting 409 mS
....waiting 430 mS
....waiting 450 mS
....waiting 472 mS
....waiting 492 mS
....waiting 513 mS
....waiting 534 mS
....waiting 555 mS
....waiting 575 mS
....waiting 597 mS
....waiting 617 mS
....waiting 638 mS
....waiting 659 mS
....waiting 680 mS
....waiting 700 mS
....waiting 721 mS
....waiting 742 mS
....waiting 763 mS
....waiting 783 mS
....waiting 805 mS
....waiting 825 mS
....waiting 846 mS
....waiting 867 mS
....waiting 888 mS
....waiting 908 mS
....waiting 930 mS
....waiting 950 mS
....waiting 971 mS
....waiting 992 mS
....waiting 1013 mS
....waiting 1034 mS
....waiting 1057 mS
....waiting 1078 mS
....waiting 1100 mS
....waiting 1121 mS
....waiting 1144 mS
....waiting 1165 mS
....waiting 1187 mS
....waiting 1209 mS
....waiting 1231 mS
....waiting 1252 mS
....waiting 1275 mS
....waiting 1296 mS
....waiting 1318 mS
....waiting 1340 mS
....waiting 1362 mS
....waiting 1383 mS
....waiting 1406 mS
....waiting 1427 mS
....waiting 1449 mS
....waiting 1471 mS
....waiting 1493 mS
....waiting 1514 mS
....waiting 1537 mS
....waiting 1558 mS
....waiting 1580 mS
....waiting 1602 mS
....waiting 1624 mS
....waiting 1645 mS
....waiting 1668 mS
....waiting 1689 mS
....waiting 1711 mS
....waiting 1734 mS
....waiting 1755 mS
....waiting 1777 mS
....waiting 1799 mS
....waiting 1821 mS
....waiting 1842 mS
....waiting 1865 mS
....waiting 1886 mS
....waiting 1908 mS
....waiting 1930 mS
....waiting 1952 mS
....waiting 1973 mS
....waiting 1996 mS
....waiting 2017 mS
....waiting 2039 mS
....waiting 2061 mS
....waiting 2083 mS
....waiting 2104 mS
....waiting 2127 mS
....waiting 2148 mS
....waiting 2170 mS
....waiting 2192 mS
....waiting 2214 mS
....waiting 2235 mS
....waiting 2258 mS
....waiting 2279 mS
....waiting 2301 mS
....waiting 2323 mS
....waiting 2345 mS
....waiting 2366 mS
....waiting 2389 mS
....waiting 2410 mS
....waiting 2432 mS
....waiting 2454 mS
....waiting 2476 mS
....waiting 2497 mS
....waiting 2519 mS
....waiting 2541 mS
....waiting 2563 mS
....waiting 2584 mS
....waiting 2607 mS
***********************
level = 9
1
4
4
4
1
1
2
1
1
....waiting 0 mS
....waiting 1 mS
....waiting 1 mS
....waiting 2 mS
....waiting 19 mS
....waiting 40 mS
....waiting 59 mS
....waiting 79 mS
....waiting 98 mS
....waiting 119 mS
....waiting 139 mS
....waiting 160 mS
....waiting 181 mS
....waiting 202 mS
....waiting 222 mS
....waiting 244 mS
....waiting 264 mS
....waiting 285 mS
....waiting 306 mS
....waiting 327 mS
....waiting 347 mS
....waiting 369 mS
....waiting 389 mS
....waiting 410 mS
....waiting 430 mS
....waiting 452 mS
....waiting 472 mS
....waiting 493 mS
....waiting 514 mS
....waiting 535 mS
....waiting 555 mS
....waiting 576 mS
....waiting 597 mS
....waiting 617 mS
....waiting 639 mS
....waiting 659 mS
....waiting 680 mS
....waiting 701 mS
....waiting 722 mS
....waiting 742 mS
....waiting 763 mS
....waiting 784 mS
....waiting 805 mS
....waiting 825 mS
....waiting 847 mS
....waiting 867 mS
....waiting 888 mS
....waiting 909 mS
....waiting 930 mS
....waiting 950 mS
....waiting 972 mS
....waiting 992 mS
....waiting 1013 mS
....waiting 1035 mS
....waiting 1057 mS
....waiting 1078 mS
....waiting 1101 mS
....waiting 1122 mS
....waiting 1144 mS
....waiting 1166 mS
....waiting 1188 mS
....waiting 1209 mS
....waiting 1231 mS
....waiting 1253 mS
....waiting 1275 mS
....waiting 1296 mS
....waiting 1319 mS
....waiting 1340 mS
....waiting 1362 mS
....waiting 1384 mS
....waiting 1406 mS
....waiting 1427 mS
....waiting 1450 mS
....waiting 1471 mS
....waiting 1493 mS
....waiting 1516 mS
....waiting 1537 mS
....waiting 1559 mS
....waiting 1581 mS
....waiting 1603 mS
....waiting 1624 mS
....waiting 1647 mS
....waiting 1668 mS
....waiting 1690 mS
....waiting 1712 mS
....waiting 1734 mS
....waiting 1755 mS
....waiting 1778 mS
....waiting 1799 mS
....waiting 1821 mS
....waiting 1843 mS
....waiting 1865 mS
....waiting 1886 mS
....waiting 1909 mS
....waiting 1930 mS
....waiting 1952 mS
....waiting 1974 mS
....waiting 1996 mS
....waiting 2017 mS
....waiting 2040 mS
....waiting 2061 mS
....waiting 2083 mS
....waiting 2105 mS
....waiting 2127 mS
....waiting 2148 mS
....waiting 2171 mS
....waiting 2192 mS
....waiting 2214 mS
....waiting 2236 mS
....waiting 2258 mS
....waiting 2279 mS
....waiting 2302 mS
....waiting 2323 mS
....waiting 2345 mS
....waiting 2367 mS
....waiting 2389 mS
....waiting 2410 mS
....waiting 2433 mS
....waiting 2455 mS
....waiting 2476 mS
....waiting 2499 mS
....waiting 2520 mS
....waiting 2542 mS
....waiting 2564 mS
....waiting 2586 mS
....waiting 2607 mS
....waiting 2629 mS
....waiting 2651 mS
....waiting 2673 mS
....waiting 2694 mS
....waiting 2717 mS
....waiting 2738 mS
....waiting 2760 mS
....waiting 2782 mS
....waiting 2804 mS
***********************
level = 1
1
....waiting 1 mS
....waiting 1 mS
....waiting 2 mS
....waiting 2 mS
....waiting 20 mS
....waiting 40 mS
....waiting 59 mS
контроль работы в Serial, СД_задание - не подключал :(
В контроеле работы. Там светодиоды повторяются. Надо сделать проверку, если предыдущий светодиод имел номер 1, то текущий светодиод не должен быть с таким же номером
В контроеле работы. Там светодиоды повторяются. Надо сделать проверку, если предыдущий светодиод имел номер 1, то текущий светодиод не должен быть с таким же номером
как на уровне ТРИ не повторить ? или через раз, или через два - можно повторять ?
если так - то доделайте функцию случайного байта с учётом ранее сгенерированного случБайта :)
на время отладки if((millis()-oldMillis)<(2000+levelCurrent*500))
это лучше заменить на if((millis()-oldMillis)<(5000+levelCurrent*1000))
Подскажите пожалуйста, как делать отладку? Например я хочу не подключая плату, увидеть что и как будет работать. Это же возможно? Или обязательно подсоединять ардуино ?
отладка - запуск кода и контроль-сравнение по фактическим действиям МК ( СД, сервы, ..... ) или вывод в Serial проверяемых значений в конкретных местах кода
не подключая плату - эмуляторы... например, Proteus, или другие...
моя этим не занимается, мне ближе железо :)
1. #175 строка из п#169. Почему так? Если случайным образом выбирается число 3, то мы записываем 4? Зачем?
if(tempByte==3) tempByte=4;
2. #78-83 строка из п#169. А именно строка 78. Т.е пока у нас assignment[] не равно 0, будет выполняться цикл. Но в какой момент он будет равен 0? Мое мнение, т.е у нас массив assigment заполнен числами до текущего уровня, а потом все 0 идут? Например 4 уровень. Первые 4 элемента из 10 заполнены числами отличных от 0, а потом с 5 элемента идут 0. Я прав? А если уровень = 10. И массив из 10 элементов. Если мы напишем assignment[10]. Он выдаст 0?
отладка - запуск кода и контроль-сравнение по фактическим действиям МК ( СД, сервы, ..... ) или вывод в Serial проверяемых значений в конкретных местах кода
не подключая плату - эмуляторы... например, Proteus, или другие...
моя этим не занимается, мне ближе железо :)
УГОВОР-соглашение : вам - скидывать крайнюю версию кода ( если вы что-то дописали ) , я - тоже :)
...чтобы не скакать по кодам из разных постов
пока отвечу - как спросили
#175 строка из п#169. Почему так? Если случайным образом выбирается число 3, то мы записываем 4? Зачем?
И почему у нас нет case3?
всё это взаимосвязано !
в байте храним состояние светодиодов чтобы затем в зависимости от значения байта управлять свечением СД, связь такая - 0бит управляет СД1, 1бит управляет СД2, 2бит управляет СД3. состояние бита - 0 СД не горит, 1 СД горит.
по задаче гореть может только один из трёх, т.е. нам нужны состояния байта - 001 СД1, 010 СД2, 100 СД3
И ЕЩЁ два состояния 000 все три СД не горят, 111 все три СД горят - для сервисных целей ( в коде смотрите для чего )
функции вывода байта на СД работают по принципу вышесказанного - выводят
( или ) 000 001 010 100 111
вывод ( или ) 011 101 110 - нам не нужен ( горит НЕ один СД )
генерируем случайное зажигание ОДНОГО из трёх СД - для этого нам нужно получить случайные байты ( почему - см. выше )
001 010 100 - в двоичном представлении
1 2 4 - в десятиричном
но рандом не может генерить диапазон с разрывом, если генерить от 1 до 4 и при получении 3 перегенеривать - то получится НЕ нормальное распределение
проще генерить от 1 до 3, при получении 3 считать что код "кагрхтавит" и принудительно заменять 3 на 4
итого : получаем случайные числа 1 2 4 с нормальным распределением
#78-83 строка из п#169. А именно строка 78.#78-83 строка из п#169. А именно строка 78.
строка 77 имеет отношение к строкам 78-83 - т.е. логически этот блок выглядит слитно 77-83
вы нашли совершенно другую ошибку :) , которую я не заметил, вернее написал код с ошибкой ( грубейшей ) :(
массив из 10-ти значений "задание" располагается в памяти МК , например с адреса 1056 ( номер в памяти МК ) , линейно и непрерывно, до адреса 1065 ( нулевое в 1056 , девятое в 1065 ) - привыкайте считать от нуля - индекс ячейки массива из 10-ти элементов может быть от 0 до 9 , а не от 1 до 10 !!!!!!
привыкайте считать от нуля - индекс ячейки массива из 10-ти элементов может быть от 0 до 9 , а не от 1 до 10 !!!!!!
Это я знаю, что массив из 10 значений идет от 0 и до 9. Т.к индексация в этой среде идет с 0. Но все же. У нас 10 уровней. Пока n!=0, у нас будет идти цикл. Как только n=0, так цикл прерывается. Я понимаю это например для 5 уровня, т.е пока n [0,1..4] у нас будет идти цикл, т.к значения assignment не будет равно 0. потом мы n++ и получаем assignment[5] = 0, у нас цикл прерывается. А вот на последнем уровне? n=9. assignment[9]!=0. потом n++. получаем n=10 assignment[10] у нас уже нет этого значения, т.к массив всего из 10 элементов.. И получается что происходит зацикливание? Или как?
номер элемента массива - это индекс, он же "указатель" , указатель на массив - более сложная штука
работа куска кода :
индекс n сделали ноль
label взяли n-ный элемент массива и если он не равен нулю выполняем ниже, равен нулю - выход из блока while
высветили СД
на полсекунды
погасили СД // про это забыл, добавлю в код
на полсекунды // про это забыл, добавлю в код
увеличиваем индекс n на единицу
переходим на label
как только очередной байт из массива равен нулю выход из while , т.е. - окончание миганий задания
тут всё правильно.... в чём же ошибка ?
получаем n=10 assignment[10] у нас уже нет этого значения, т.к массив всего из 10 элементов.. И получается что происходит зацикливание? Или как?
вот именно - или как :(
за массивом в памяти в 1066 располагаются другие данные, какие нам не известно :(
пусть там сидят последовательно байты 00110011 11111111 00000110 00000000
после 10-ти миганий увидим ещё ТРИ мигания - СД2СД1 СД3СД2СД1 СД3СД2 - и только потом выйдем из while
это называется выход за пределы массива :(
за индексом нужен контроль, решаем это так
while( (assignment[n]!=0)) && (n<10) ) - или ноль , или конец массива
Если я не прав поправьте пожалуйста.
У нас имеется массив светодиодов assignment[10] Т.е он имеет 11 значений. Если я правильно понимаю, то изначально он заполнен 0 значениями. assignment[10]= [0 0 0 0 0 0 0 0 0 0 0]
На первом уровне будет так : assignment[10]= [a 0 0 0 0 0 0 0 0 0 0], где a - случайное число.
На пятом так: assignment[10]= [a a a a a 0 0 0 0 0 0]. На десятом так: assignment[10]= [a a a a a a a a a a 0]. Так?
Тут вопросов нет. Это я понимаю. Т.е весь мой большой цикл про индикацию жизни вывести в функцию. Так же сделать и со всем остальным.
да ну нах ......
не более 125 ! ответим на все ( когда не на смену, не супружеский долг, или ВВ приехал/прилетел в СПб )
да ну нах ......
не более 125 ! ответим на все ( когда не на смену, не супружеский долг, или ВВ приехал/прилетел в СПб )
Хорошо) я завтра почитаю и попробую сделать) буду по ходу задавать вопросы что не понятно)
да ну нах ......
не более 125 ! ответим на все ( когда не на смену, не супружеский долг, или ВВ приехал/прилетел в СПб )
ФСО ! у миня друг ВВ.... спасибо, что разблокироали...... через 3 мин.....
ой, по #152 - проблема, кажися..... :(
да ну нах ......
не более 125 ! ответим на все ( когда не на смену, не супружеский долг, или ВВ приехал/прилетел в СПб )
хорошо....
коды и картинки - не плохого бы
разблокировали :)
да ну нах ......
не более 125 ! ответим на все ( когда не на смену, не супружеский долг, или ВВ приехал/прилетел в СПб )
хорошо....
коды и картинки - не плохого бы
разблокировали :)
Хорошо, я попробую
Функция с работой индикации жизни. Передаем в функцию текущее значение жизней и в зависимости от этого значения меняется индикация на панели.
добавлено много "кирпичиков", которые помогают делать читабельным код
в вашем #158 строки 5....15 - это трёхкратное мигание о том что конец игры ?
вы делаете функцию вывода колва жизней... и вводите туда обработку признака конца игры ? для этого нужно написать другую функцию.. это просто моё мнение :)
функции нижнего уровня надо делать наиболее простыми, а функции постарше - можно слепить из нескольких младших....
аналог вашей функции в моём коде в строке 107 ( для аргумента в ней хватит и байта ) -
void
OutByteLive(
byte
_n)
функцию вывода байта на отображение можно сделать универсальной для СД_задание и СД_жизнь, а неё будет два аргумента - на какие СД выводить и что выводить.... я пока не знаю как прописать аргумент_1 :(
....может быть kisoft заглянет подскажет ?
отобразить СД_з и СД_ж в два массива по три значения и
void
OutByte(имяМассива,
byte
_n) ?
контроль работы в Serial, СД_задание - не подключал :(
В контроеле работы. Там светодиоды повторяются. Надо сделать проверку, если предыдущий светодиод имел номер 1, то текущий светодиод не должен быть с таким же номером
В контроеле работы. Там светодиоды повторяются. Надо сделать проверку, если предыдущий светодиод имел номер 1, то текущий светодиод не должен быть с таким же номером
как на уровне ТРИ не повторить ? или через раз, или через два - можно повторять ?
если так - то доделайте функцию случайного байта с учётом ранее сгенерированного случБайта :)
нет, лучше здесь это прописать for(byte i=0;i<levelCurrent;i++) { assignment[i]=randomByte(); }
Я домой приду, попробую разобраться в коде) А то некоторые моменты вообще не понятно, да и с телефона не удобно) Спасибо за помощь)
на контроле
плавно добрались до борьбы с дребезгом контактов кнопок, реле :)
http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-no...
здравствуйте, не могу понять как работает функция tone
http://arduino.ru/Reference/Tone прочитав тут, сделал вот такой код:
и получается как я понял светодиодик должен пол секунды гореть, и пол секунды быть потухшим, так?
а у меня выходит что светодиодик горит постоянно
нет под руками кнопок, от уровня к уровню сажал на землю пины кнопок
здравствуйте, не могу понять как работает функция tone
http://arduino.ru/Reference/Tone прочитав тут, сделал вот такой код:
и получается как я понял светодиодик должен пол секунды гореть, и пол секунды быть потухшим, так?
а у меня выходит что светодиодик горит постоянно
это другая тема.... создайте свою - и вам удобнее, и топикстартеру этой темы - приятнее
http://arduino.ru/forum/obshchii/sozdanie-temy
:)
это функция управления пищалкой.... для СД нужно вам смотреть digitalWrite()....
на время отладки if((millis()-oldMillis)<(2000+levelCurrent*500))
это лучше заменить на if((millis()-oldMillis)<(5000+levelCurrent*1000))
на время отладки if((millis()-oldMillis)<(2000+levelCurrent*500))
это лучше заменить на if((millis()-oldMillis)<(5000+levelCurrent*1000))
Подскажите пожалуйста, как делать отладку? Например я хочу не подключая плату, увидеть что и как будет работать. Это же возможно? Или обязательно подсоединять ардуино ?
отладка - запуск кода и контроль-сравнение по фактическим действиям МК ( СД, сервы, ..... ) или вывод в Serial проверяемых значений в конкретных местах кода
не подключая плату - эмуляторы... например, Proteus, или другие...
моя этим не занимается, мне ближе железо :)
if
(tempByte==3) tempByte=4;
078
while
(assignment[n]!=0)
079
{
080
OutByteAssignment(assignment[n]);
081
delay(500);
082
n++;
083
}
отладка - запуск кода и контроль-сравнение по фактическим действиям МК ( СД, сервы, ..... ) или вывод в Serial проверяемых значений в конкретных местах кода
не подключая плату - эмуляторы... например, Proteus, или другие...
моя этим не занимается, мне ближе железо :)
Эмуляторы мне тоже не интересны, понял все)
И почему у нас нет case3?
ledBlockButtons для чего эта переменная?
ledBlockButtons для чего эта переменная?
пин для СД-ов подсветки блока кнопок - "сигнализация" что можно жать кнопки для ввода ответа
....чуть попозже вернусь ( 0,5 .... 1 час )
ledBlockButtons для чего эта переменная?
пин для СД-ов подсветки блока кнопок - "сигнализация" что можно жать кнопки для ввода ответа
....чуть попозже вернусь ( 0,5 .... 1 час )
Ааа.. Точно. Спасибо
УГОВОР-соглашение : вам - скидывать крайнюю версию кода ( если вы что-то дописали ) , я - тоже :)
...чтобы не скакать по кодам из разных постов
пока отвечу - как спросили
Я не писал код(( То что я пробовал, там были ошибки.. И не всегда было корректно. Т.к я только учусь..
#175 строка из п#169. Почему так? Если случайным образом выбирается число 3, то мы записываем 4? Зачем?
И почему у нас нет case3?
всё это взаимосвязано !
в байте храним состояние светодиодов чтобы затем в зависимости от значения байта управлять свечением СД, связь такая - 0бит управляет СД1, 1бит управляет СД2, 2бит управляет СД3. состояние бита - 0 СД не горит, 1 СД горит.
по задаче гореть может только один из трёх, т.е. нам нужны состояния байта - 001 СД1, 010 СД2, 100 СД3
И ЕЩЁ два состояния 000 все три СД не горят, 111 все три СД горят - для сервисных целей ( в коде смотрите для чего )
функции вывода байта на СД работают по принципу вышесказанного - выводят
( или ) 000 001 010 100 111
вывод ( или ) 011 101 110 - нам не нужен ( горит НЕ один СД )
генерируем случайное зажигание ОДНОГО из трёх СД - для этого нам нужно получить случайные байты ( почему - см. выше )
001 010 100 - в двоичном представлении
1 2 4 - в десятиричном
но рандом не может генерить диапазон с разрывом, если генерить от 1 до 4 и при получении 3 перегенеривать - то получится НЕ нормальное распределение
проще генерить от 1 до 3, при получении 3 считать что код "кагрхтавит" и принудительно заменять 3 на 4
итого : получаем случайные числа 1 2 4 с нормальным распределением
:)
Все, я понял)) Спасибо, очень доступно объяснили)
#78-83 строка из п#169. А именно строка 78.#78-83 строка из п#169. А именно строка 78.
строка 77 имеет отношение к строкам 78-83 - т.е. логически этот блок выглядит слитно 77-83
вы нашли совершенно другую ошибку :) , которую я не заметил, вернее написал код с ошибкой ( грубейшей ) :(
массив из 10-ти значений "задание" располагается в памяти МК , например с адреса 1056 ( номер в памяти МК ) , линейно и непрерывно, до адреса 1065 ( нулевое в 1056 , девятое в 1065 ) - привыкайте считать от нуля - индекс ячейки массива из 10-ти элементов может быть от 0 до 9 , а не от 1 до 10 !!!!!!
пириф-перекур !
привыкайте считать от нуля - индекс ячейки массива из 10-ти элементов может быть от 0 до 9 , а не от 1 до 10 !!!!!!
Это я знаю, что массив из 10 значений идет от 0 и до 9. Т.к индексация в этой среде идет с 0. Но все же. У нас 10 уровней. Пока n!=0, у нас будет идти цикл. Как только n=0, так цикл прерывается. Я понимаю это например для 5 уровня, т.е пока n [0,1..4] у нас будет идти цикл, т.к значения assignment не будет равно 0. потом мы n++ и получаем assignment[5] = 0, у нас цикл прерывается. А вот на последнем уровне? n=9. assignment[9]!=0. потом n++. получаем n=10 assignment[10] у нас уже нет этого значения, т.к массив всего из 10 элементов.. И получается что происходит зацикливание? Или как?
номер элемента массива - это индекс, он же "указатель" , указатель на массив - более сложная штука
работа куска кода :
индекс n сделали ноль
label взяли n-ный элемент массива и если он не равен нулю выполняем ниже, равен нулю - выход из блока while
высветили СД
на полсекунды
погасили СД // про это забыл, добавлю в код
на полсекунды // про это забыл, добавлю в код
увеличиваем индекс n на единицу
переходим на label
как только очередной байт из массива равен нулю выход из while , т.е. - окончание миганий задания
тут всё правильно.... в чём же ошибка ?
Я понял свою ошибку. Массив assignment имеет 11 значений. Не досмотрел)
получаем n=10 assignment[10] у нас уже нет этого значения, т.к массив всего из 10 элементов.. И получается что происходит зацикливание? Или как?
вот именно - или как :(
за массивом в памяти в 1066 располагаются другие данные, какие нам не известно :(
пусть там сидят последовательно байты 00110011 11111111 00000110 00000000
после 10-ти миганий увидим ещё ТРИ мигания - СД2СД1 СД3СД2СД1 СД3СД2 - и только потом выйдем из while
это называется выход за пределы массива :(
за индексом нужен контроль, решаем это так
while
( (assignment[n]!=0)) && (n<10) ) - или ноль , или конец массива
ЭТО БРЕД, Можно не читать))))
Если я не прав поправьте пожалуйста.
У нас имеется массив светодиодов assignment[10] Т.е он имеет 11 значений. Если я правильно понимаю, то изначально он заполнен 0 значениями. assignment[10]= [0 0 0 0 0 0 0 0 0 0 0]
На первом уровне будет так : assignment[10]= [a 0 0 0 0 0 0 0 0 0 0], где a - случайное число.
На пятом так: assignment[10]= [a a a a a 0 0 0 0 0 0].
На десятом так: assignment[10]= [a a a a a a a a a a 0]. Так?
while
( (assignment[n]!=0)) && (n<10) ) - или ноль , или конец массива
Вот это я и ждал)))
Я понял свою ошибку. Массив assignment имеет 11 значений. Не досмотрел)
нет !!!!!!!!!!!!!
byte
assignment[10];
// массив для "задание"
- объявление массива из 10 элементов, тип элементов байт, индексы элементов массива от 0 до 9Я понял свою ошибку. Массив assignment имеет 11 значений. Не досмотрел)
нет !!!!!!!!!!!!!
byte
assignment[10];
// массив для "задание"
- объявление массива из 10 элементов, тип элементов байт, индексы элементов массива от 0 до 9Я теперь понял все)
Вот это я и ждал)))
надо самому уже пробовать-предлагать-обжигацца :)-
Вот это я и ждал)))
надо самому уже пробовать-предлагать-обжигацца :)-
Да надо) Я просто не совсем понимал как происходит выход из цикла)
Если подключить ардуино и залить скетч, все будет работать?)
На десятом так: assignment[10]= [a a a a a a a a a a 0]. Так?
нет, массив 10, а значений 11 !