Как оптимизировать код
- Войдите на сайт для отправки комментариев
Пнд, 16/09/2019 - 23:29
Здравствуйте, подскажите как можно оптимизировать данный код?
Не судите строго я новичок!
#include "Adafruit_NeoPixel.h" #define LED_COUNT 14 #define LED_PIN 6 Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); int x0=0; int x1=1; int x2=2; int x3=3; int x4=4; int x5=5; int x6=6; int x7=7; int x8=8; int x9=9; int x10=10; int x11=11; int x12=12; void setup() { strip.begin(); } void loop() { if (x0>13){ x0=0; } if (x1>13){ x1=0; } if (x2>13){ x2=0; } if (x3>13){ x3=0; } if (x4>13){ x4=0; } if (x5>13){ x5=0; } if (x6>13){ x6=0; } if (x7>13){ x7=0; } if (x8>13){ x8=0; } if (x9>13){ x9=0; } if (x10>13){ x10=0; } if (x11>13){ x11=0; } if (x12>13){ x12=0; } for (int i = 0; i < LED_COUNT; i++) { strip.setPixelColor(x0, strip.Color(55,0,0)); strip.show(); strip.setPixelColor(x1, strip.Color(55,17,0)); strip.show(); strip.setPixelColor(x2, strip.Color(55,35,0)); strip.show(); strip.setPixelColor(x3, strip.Color(55,45,0)); strip.show(); strip.setPixelColor(x4, strip.Color(55,55,0)); strip.show(); strip.setPixelColor(x5, strip.Color(27,55,0)); strip.show(); strip.setPixelColor(x6, strip.Color(0,55,0)); strip.show(); strip.setPixelColor(x7, strip.Color(0,55,27)); strip.show(); strip.setPixelColor(x8, strip.Color(0,55,55)); strip.show(); strip.setPixelColor(x9, strip.Color(0,27,55)); strip.show(); strip.setPixelColor(x10, strip.Color(0,0,55)); strip.show(); strip.setPixelColor(x11, strip.Color(27,0,55)); strip.show(); strip.setPixelColor(x12, strip.Color(55,0,55)); strip.show(); strip.setPixelColor(x0, strip.Color(0,0,0)); strip.show(); } x0++; x1++; x2++; x3++; x4++; x5++; x6++; x7++; x8++; x9++; x10++; x11++; x12++; }
Оптимизация по какому/каким параметрам интересует?
Ну как минимум уменьшение кода, без потери работоспособности
Организуйте вместо переменных x1-x12 массив
int x[12]
Я бы сказал, вместо x0-x12 : int x[13]
Ну да :)
а для чего там цикл в строке 67 - вообще не ясно, думаю это все, что осталось от прежнего более оптимального кода:)
А как задать иксам значения?
http://arduino.ru/forum/programmirovanie/rabota-s-hex#comment-479087
Как то так. В книгах по програмированию это описано. Что, совсем лень читать?
может вам так хотелось?
может вам так хотелось?
тада массив х надо выкинуть, он не используется нигде
Деда, ну поправил бы че ты.
поправляю:
for
(
int
i = 0; i <
sizeof
(x)/3; i=i+3)
неправильно, на 3 не нада делить, надо ж дойти до конца массива, а не до его трети
for
(
int
i = 0; i <
sizeof
(x); i+=3)
понял, сажусь два
неправильно, на 3 не нада делить, надо ж дойти до конца массива, а не до его трети
и не только это, в исходном коде был сдвиг по массиву, а тут его нет
и не только это, в исходном коде был сдвиг по массиву
ХДЕ? О_О Тут от i вапще ничо не зависит (это исходный, из #1)
Ааааа. понял как. не работал с этими вашими неопикселями проклятыми. :)
Правда, сиравно не понимаю, нахрена там цикл.
Правда, сиравно не понимаю, нахрена там цикл.
я об этом уже писал в #5 :)
я об этом уже писал в #5 :)
ну дак я же чертовски внимателен сёдня. :)
и зачем пишу... опять двойка будет
4 тут вапще не в кассу.
почему? блин и проверить то никак , ни библиотеки ни диодов.
почему? блин и проверить то никак , ни библиотеки ни диодов.
Аааа, нет, это я ступил. Массив то уже переделанный. Пойду лучше на огороде работать.
и я ))