Беспроводной ключ

sadman41
Offline
Зарегистрирован: 19.10.2016

А что советовать... клади код, посмотрим на каком уровне советовать надо. Тут вон один пришел за кодом, ушел делать мигалку на микросхемах, потому что не нужна ему ардуина в задаче.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Ruzh пишет:
wdrakula пишет:

Ruzh пишет:
я все же считаю что вы не очень понимаете что да как на форумах.

Ну так вот ты нас и научи! Мы записываем.

А то мы тут тонем в болоте невежества. Протяни же нам руку помощи!!!

Сарказм тонкая штука, не используйте его, не ваше.

ОЙ, родное сердце, ты бы папке советы давал, если мамка с ним познакомила, в чем есть основания сомневаться.

Так что ждем "как там что на форумах происходит".

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ну всё - суббота удалась: после трёх часов отладки, когда голова уже пухнет и хочется железкой в стену запустить - такая лафа :)

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ruzh пишет:

Ладно, засекайте время, если в течении двух часов не будет кода, объявляйте так и быть меня балаболом всея форума.

Тем временем прошло уже 35 минут. Тик-так, тик-так :)

Ruzh
Offline
Зарегистрирован: 25.01.2018

DIYMan пишет:

Ruzh пишет:
а вот общение вижу по этому и сужу

У нас тут неформальщина, "мы счастливы!" (с) "бляДОМ-2". Привыкай, короче. BTW, какая у тебя специализация в веб-программинге? Фронтэнд (на чём?)? Бэкэнд (на чём?)? Расскежь, пока мы тут кода от тебя ждём - интересно ведь, какие фреймворки на мыше вертишь, как живёшь, с какого раёна :)

З.Ы. На всякий: "раён" - написан правильно, ибо - читай выше про сарказм :)


Пишу в основном на wp, знаком с препроцессорами и прочими плюшками. Сейчас из за проблем с позвоночником больше года не пишу (долго за компьютером не могу) и устраиваюсь на работу по диплому

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ruzh пишет:
Пишу в основном на wp, знаком с препроцессорами и прочими плюшками. Сейчас из за проблем с позвоночником больше года не пишу (долго за компьютером не могу) и устраиваюсь на работу по диплому

WordPress, чо ли? Дык это не язык программирования и даже не фреймворк, это тупо CMS. Такого добра - как говна за баней, можно и макаку научить настраивать/заполнять CMS.

Ты, как программист - на чём ПИШЕШЬ? Какие языки программирования знаешь? ну чтобы было понятно, в каком разрезе с тобой общаться, скажем так. Твои же слова:

Ruzh пишет:

несколько лет занимался разработкой сайтов и в кодинге познания есть.

не?

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Ruzh пишет:
я все же считаю что вы не очень понимаете что да как на форумах.
Мы все не понимаем, автор лурка (см #17) не понимает. Один ты понимаешь? А может ... может всё же это ты как-то неадекватно к форуму относишься?

sadman41
Offline
Зарегистрирован: 19.10.2016

В вордпрессе тоже надо иногда вхачить кусок на PHP - чего греха таить... 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

Я, между прочим, имею знание "Заслуженный тролль России" и честно его заслужил  в этих ваших интернетах.

Во, блин! А я просил дать мне "заслуженного флудераста" - не дали. Тогда я сам себе это звание присвоил :)))

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

sadman41 пишет:

В вордпрессе тоже надо иногда вхачить кусок на PHP - чего греха таить... 

Ну ты понимаешь же, что если человек говорит, что он пишет на wordpress, то это несколько, эээ - намекает, что ли? Кусков на PHP - тоже, как за баней, на куче форумов можно готовых понавыпрашивать - для этого необязательно быть программистом, собственно - не зря я про приматов упоминал (тут есть один такой, не будем всуе поминать имя, а то придёт кукарекать, неровён час).

Впрочем, ждём кода, осталось чуть больше часа, я уже - собрался, настроился, готов вникать, ведь всегда приятно, когда встречаешь профессионала, у которого есть чему поучиться. И, если быть откровенным - и такого варианта развития событий я не исключаю полностью.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ЕвгенийП пишет:

b707 пишет:

Я, между прочим, имею знание "Заслуженный тролль России" и честно его заслужил  в этих ваших интернетах.

Во, блин! А я просил дать мне "заслуженного флудераста" - не дали. Тогда я сам себе это звание присвоил :)))

А я, а как же я? Хотя бы на звание "заслуженного посылателя в Сургут" - могу претендовать? :)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

DIYMan пишет:

А я, а как же я? Хотя бы на звание "заслуженного посылателя в Сургут" - могу претендовать? :)

Ты же понимаешь, что Клапа уже давно и "заслуженный" и "народный" и т.д. и т.п.?

Я вот хотел баллотироваться на главное хамло форума... но и тут прокатили... как дальше жить?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

wdrakula пишет:

DIYMan пишет:

А я, а как же я? Хотя бы на звание "заслуженного посылателя в Сургут" - могу претендовать? :)

Ты же понимаешь, что Клапа уже давно и "заслуженный" и "народный" и т.д. и т.п.?

Я вот хотел баллотироваться на главное хамло форума... но и тут прокатили... как дальше жить?

Ну СамогО - нам не обскакать, это ясно. Он у нас - НАРОДНЫЙ, а я, всего лишь - про заслуженного заикался... Ну нет, так нет :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, не я бы Вам более высокое звание дал,но что-то не могу придумать ... башка трещит, весь день сегодня напрягал, пытаясь вникнуть в давно позабытые тонкости Фурье-анализа :(

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ruzh пишет:

Ладно, засекайте время, если в течении двух часов не будет кода, объявляйте так и быть меня балаболом всея форума.

Уж полночь близится, а Германа всё нет :)

З.Ы. Первый час из двух - йок.

З.З.Ы. Ладно, пойду пока какую-нибудь жвачку на ютюбе гляну, чтобы скоротать, значицца.

Ruzh
Offline
Зарегистрирован: 25.01.2018

DIYMan пишет:

Ruzh пишет:
Пишу в основном на wp, знаком с препроцессорами и прочими плюшками. Сейчас из за проблем с позвоночником больше года не пишу (долго за компьютером не могу) и устраиваюсь на работу по диплому

WordPress, чо ли? Дык это не язык программирования и даже не фреймворк, это тупо CMS. Такого добра - как говна за баней, можно и макаку научить настраивать/заполнять CMS.

Ты, как программист - на чём ПИШЕШЬ? Какие языки программирования знаешь? ну чтобы было понятно, в каком разрезе с тобой общаться, скажем так. Твои же слова:

Ruzh пишет:

несколько лет занимался разработкой сайтов и в кодинге познания есть.

не?


Все стандартно, php,js про верстку не пишу это и так ясно. Для того что бы cms "заполнять" сначала нужно написать что заполнять будешь

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Не по теме:
Евгений Петрович, Ваша библиотека TimeMeasure.h с Servo.h случайно не может конфликтовать? Использую 0 прерывание

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, она использует таймер 1, библиотека servo - тоже.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

Да, она использует таймер 1, библиотека servo - тоже.


Есть варианты разнести?

Ruzh
Offline
Зарегистрирован: 25.01.2018

ладно, домой добрался, сфоткал (особо не верующие на дисплей смотрим)вот так сейчас, еще пара датчиков но вычитал что нужно через 4.7кОм сопротивление подключать а их небыло

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ua6em пишет:

Есть варианты разнести?

Ну, в целом-то всё возможно, но трах тоже. Не знаю, когда смогу, завтра точно не могу.

Ruzh
Offline
Зарегистрирован: 25.01.2018
void start_engine () {

  if (!digitalRead(check)) {      // если проверка прошла (безопасность)
    //  Serial.println("безопасность - ОК");
    if (permission_to_start == 0) {
      return;
    }


    if (digitalRead(lamp_generator) == 0 && permission_to_start == 1 || try_to_start < 3 && permission_to_start == 1) {    // если лампочка горит и попыток меньше трех


      //   Serial.println("двигатель не запущен или попыток < 3");

      if (digitalRead(starter_pin) == 0 && permission_to_start == 1) {     // если стартер выключен  и нажата кнопка для старта двигателя

        digitalWrite(starter_pin, HIGH);         // включаем стартер
        Serial.println("стартер включен");
        begin_starter_time = millis();  // запоминаем время старта работы стартера

      }





      else if ( (millis() - begin_starter_time)  > starter_try_time && permission_to_start == 1  ) {  // starter_try_time - это время работы стартера во время попытки

        //  Serial.println( millis() - begin_starter_time);
        try_to_start  ++;
        Serial.print("попытка старта: "); Serial.println(try_to_start); Serial.println(" двигатель не завелся");
        digitalWrite(starter_pin, LOW);
        Serial.println("Выключается стартер");
        digitalWrite(ignition_pin, LOW);
        lcd.setCursor(0, 2);
  lcd.print("   IGNITION OFF     ");
        Serial.println("Выключается зажигание");


        if (try_to_start >= 3 && permission_to_start == 1) {  // если попыток старта больше трёх


          Serial.println("Двигатель не завелся после 3 попыток");
          digitalWrite(ignition_pin, LOW);
          Serial.println("Зажигание отключено");
          lcd.setCursor(0, 2);
          lcd.print("   IGNITION OFF     ");
          try_to_start = 0;
          permission_to_start = 0;
          blink_error_count = 3;


        }






      }

    }


    if (digitalRead(lamp_generator) == 1 && permission_to_start == 1) {  // если лампочка не горит

      digitalWrite(starter_pin, LOW);  // отключаем стартер
      Serial.println("Оключаем стартер");

      if (digitalRead(lamp_generator) == 1 && permission_to_start == 1) {

        Serial.println("Двигатель завелся");
        engine_now_works = 1;

       lcd.setCursor(0, 3);
 lcd.print("....ENGINE WORKS....");
        
//       digitalWrite(engine_work_pin, HIGH);  // включаем индикацию работы двигателя
        permission_to_start = 0;

      }

    }


  }


}

функция старта двигателя

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ruzh пишет:
Все стандартно, php,js про верстку не пишу это и так ясно. Для того что бы cms "заполнять" сначала нужно написать что заполнять будешь

es2016 владеешь? Чем пользуешься для сборки JS в бандл?

Ruzh
Offline
Зарегистрирован: 25.01.2018
void engine_works_or_crop () {

  if (digitalRead(lamp_generator) == 0 && engine_now_works == 1 ) {

    engine_stalled = 1;
    engine_now_works = 0;
    permission_to_start = 0;
    Serial.println("Двигатель заглох");
//    digitalWrite(engine_work_pin, LOW);
    blink_error_count = 4;

    lcd.setCursor(0, 3); 
 lcd.print("....ENGINE CROP.....");

  }

}


void sensor_check () {


  if (digitalRead(check)) { // проверка безопасности

    Serial.println("Проверка НЕ прошла");
    digitalWrite(starter_pin, LOW); //выключили стартер если во время заводки проверка не прошла
    digitalWrite(ignition_pin, LOW); // выключили зажигание
    lcd.setCursor(0, 2); 
  lcd.print("   IGNITION OFF     ");
    permission_to_start = 0;
    blink_error_count = 1;
    Serial.println("Зажигание отключено");
    lcd.setCursor(0, 3); 
     lcd.print("    CHECK FALLIED   ");

  }

}

тут проверка не заглох ли ну и проверка датчиков на безопасный старт

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ruzh пишет:

функция старта двигателя

Всё, СТОП! Дальше можешь не продолжать - у тебя строки в оперативке все. Это - НЕнормальный код. Срочно читать про макрос F() - как минимум. Как усвоишь - продолжим.

Ну а пока - я не то, что не разочарован, я - удовлетворён тем, что все наши опасения подтвердились ;)

Ruzh
Offline
Зарегистрирован: 25.01.2018

DIYMan пишет:

Всё, СТОП! Дальше можешь не продолжать - у тебя строки в оперативке все. Это - НЕнормальный код. Срочно читать про макрос F() - как минимум. Как усвоишь - продолжим.

Ну а пока - я не то, что не разочарован, я - удовлетворён тем, что все наши опасения подтвердились ;)

Код есть?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

ua6em пишет:

Есть варианты разнести?

Ну, в целом-то всё возможно, но трах тоже. Не знаю, когда смогу, завтра точно не могу.


Да я серво тестер решил сделать, ставить две ардуины как-то не комильфо, не горит, если сможете буду признателен! В фотографиях разобрались?

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ruzh пишет:

DIYMan пишет:

Всё, СТОП! Дальше можешь не продолжать - у тебя строки в оперативке все. Это - НЕнормальный код. Срочно читать про макрос F() - как минимум. Как усвоишь - продолжим.

Ну а пока - я не то, что не разочарован, я - удовлетворён тем, что все наши опасения подтвердились ;)

Код есть?

Какой код тебе нужен, чтобы почитать про макрос F()? Прям вот в гугле вбиваешь "arduino use f macro" (по коду вижу, что у тебя с английским норм) - и читаешь. Потом применяешь прочитанное, и удивляешься, насколько сократился расход оперативки.

Вот тебе ссылка, как пример: https://playground.arduino.cc/learning/memory :

Serial.println(F("This string will be stored in flash memory"));

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DIYMan пишет:

Ruzh пишет:

функция старта двигателя

Всё, СТОП! Дальше можешь не продолжать - у тебя строки в оперативке все. Это - НЕнормальный код. Срочно читать про макрос F() - как минимум. Как усвоишь - продолжим.

Ну а пока - я не то, что не разочарован, я - удовлетворён тем, что все наши опасения подтвердились ;)


Миллис то кошерно применён

if ( (millis() - begin_starter_time)  > starter_try_time && permission_to_start == 1  ) 

 

Ruzh
Offline
Зарегистрирован: 25.01.2018

DIYMan пишет:

Ruzh пишет:

DIYMan пишет:

Всё, СТОП! Дальше можешь не продолжать - у тебя строки в оперативке все. Это - НЕнормальный код. Срочно читать про макрос F() - как минимум. Как усвоишь - продолжим.

Ну а пока - я не то, что не разочарован, я - удовлетворён тем, что все наши опасения подтвердились ;)

Код есть?

Какой код тебе нужен, чтобы почитать про макрос F()? Прям вот в гугле вбиваешь "arduino use f macro" (по коду вижу, что у тебя с английским норм) - и читаешь.

 

я код не просил и не прошу, тут громко кричали что его не существует просто. почитать и сделать лучше? да, конечно. мог ли я все это знать за пару дней?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ruzh пишет:

я код не просил и не прошу, тут громко кричали что его не существует просто. почитать и сделать лучше? да, конечно. мог ли я все это знать за пару дней?

Не не, ты же вроде как утверждал, что у тебя всё ок с кодом, и просто он в оперативку не влазит, поэтому надо срочно менять контроллер на более взрослый. Было такое, не? На что тебе в ответ были высказаны совершенно обоснованные сомнения в том ключе, что, скорее всего, твой код "не алё". На что ты ответил, что код написан профессионально и мы тут все разочаруемся. На что я - приготовил попкорн, который уже почти весь сожран.

Так ты будешь читать про макрос F(), или по прежнему будешь утверждать, что твой код написан профессионально?

Ruzh
Offline
Зарегистрирован: 25.01.2018

DIYMan пишет:

Ruzh пишет:

я код не просил и не прошу, тут громко кричали что его не существует просто. почитать и сделать лучше? да, конечно. мог ли я все это знать за пару дней?

Не не, ты же вроде как утверждал, что у тебя всё ок с кодом, и просто он в оперативку не влазит, поэтому надо срочно менять контроллер на более взрослый. Было такое, не? На что тебе в ответ были высказаны совершенно обоснованные сомнения в том ключе, что, скорее всего, твой код "не алё". На что ты ответил, что код написан профессионально и мы тут все разочаруемся. На что я - приготовил попкорн, который уже почти весь сожран.

Так ты будешь читать про макрос F(), или по прежнему будешь утверждать, что твой код написан профессионально?

я не писал что мой код професионален) я писал что может быть такое что он не влазит в МК, это разное

b707
Offline
Зарегистрирован: 26.05.2017

Ruzh пишет:

я код не просил и не прошу, тут громко кричали что его не существует просто. почитать и сделать лучше? да, конечно. мог ли я все это знать за пару дней?

ты не спорь, а просто внутрь всех Serial.print() вставь вставку F().

И сразу , глядишь, выяснится, что в Уно можно запихать еще пару твоих проектов.

Ruzh
Offline
Зарегистрирован: 25.01.2018

Ruzh пишет:

DIYMan пишет:

Ruzh пишет:

я код не просил и не прошу, тут громко кричали что его не существует просто. почитать и сделать лучше? да, конечно. мог ли я все это знать за пару дней?

Не не, ты же вроде как утверждал, что у тебя всё ок с кодом, и просто он в оперативку не влазит, поэтому надо срочно менять контроллер на более взрослый. Было такое, не? На что тебе в ответ были высказаны совершенно обоснованные сомнения в том ключе, что, скорее всего, твой код "не алё". На что ты ответил, что код написан профессионально и мы тут все разочаруемся. На что я - приготовил попкорн, который уже почти весь сожран.

Так ты будешь читать про макрос F(), или по прежнему будешь утверждать, что твой код написан профессионально?

 

 

конечно буду, разве я спорю?

Ruzh
Offline
Зарегистрирован: 25.01.2018

b707 пишет:

Ruzh пишет:

я код не просил и не прошу, тут громко кричали что его не существует просто. почитать и сделать лучше? да, конечно. мог ли я все это знать за пару дней?

ты не спорь, а просто внутрь всех Serial.print() вставь вставку F().

И сразу , глядишь, выяснится, что в Уно можно запихать еще пару твоих проектов.

ок, спс, учту

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ruzh пишет:

я не писал что мой код професионален) я писал что может быть такое что он не влазит в МК, это разное

Я что - в шары долблюсь, по-твоему? Вот это - кто писал, Пушкин А.С.?

Ruzh пишет:
А во вторых здесь проблема в том что по мере написания дописывал новые и новые функции которые уже вышли за рамки старт стоп системы, и соответственно ресурсов не хватает, но если вы думаете что если что то не входит в 2 кб ОЗУ то это написано плохо то вынужден вас разочаровать.

Перед этим ты себя позиционировал, как программиста, тащемта. Когда тебе сказали, что, скорее всего - именно код написан плохо - ты встал в позу. Разгибайся, уже проехали.

Ruzh
Offline
Зарегистрирован: 25.01.2018

DIYMan пишет:

Ruzh пишет:

я не писал что мой код професионален) я писал что может быть такое что он не влазит в МК, это разное

Я что - в шары долблюсь, по-твоему? Вот это - кто писал, Пушкин А.С.?

Ruzh пишет:
А во вторых здесь проблема в том что по мере написания дописывал новые и новые функции которые уже вышли за рамки старт стоп системы, и соответственно ресурсов не хватает, но если вы думаете что если что то не входит в 2 кб ОЗУ то это написано плохо то вынужден вас разочаровать.

Перед этим ты себя позиционировал, как программиста, тащемта. Когда тебе сказали, что, скорее всего - именно код написан плохо - ты встал в позу. Разгибайся, уже проехали.

хм, действительно, признаю, так написано (говорить что немного не то имел в виду смысла ибо не поверите)

Ruzh
Offline
Зарегистрирован: 25.01.2018

DIYMan пишет:

Перед этим ты себя позиционировал, как программиста, тащемта. Когда тебе сказали, что, скорее всего - именно код написан плохо - ты встал в позу. Разгибайся, уже проехали.

я говорил что кодинге познания есть. это вы сами додумали

b707
Offline
Зарегистрирован: 26.05.2017

Рыжий,

но если вы думаете что если что то не входит в 2 кб ОЗУ то это написано плохо то вынужден вас разочаровать.

- это цитата из тебя, сообщение 9.

Так вот - мы не разочаровались. Таки оказалось, что твой код не входит в 2К именно потому. что написан плохо. Что и следовало доказать.

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Короче: пока бери, оборачивай все строки в макрос F() - вполне может оказаться, что оперативы свободной там - ещё тележка останется. Далее - поговорим об оптимизации, ибо - там есть куда: как я и говорил - есть флаги, которые занимают по целому байту на флаг.

sadman41
Offline
Зарегистрирован: 19.10.2016

Да ладно вам, написано неплохо. Использует F и будет всё еще неплоше.

Ruzh
Offline
Зарегистрирован: 25.01.2018

b707 пишет:

Рыжий,

но если вы думаете что если что то не входит в 2 кб ОЗУ то это написано плохо то вынужден вас разочаровать.

- это цитата из тебя, сообщение 9.

Так вот - мы не разочаровались. Таки оказалось, что твой код не входит в 2К именно потому. что написан плохо. Что и следовало доказать.

 

согласен, на счет F() просто не знал, думал вы скорее о том что delay() использую или что то в этом роде

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

sadman41 пишет:

Да ладно вам, написано неплохо. Использует F и будет всё еще неплоше.

А мы чо? Мы ничо :) Написано, действительно - во много раз лучше, чем у многих новичков. И видно, что с английским норм, как минимум. Вопрос-то больше касался того, что простенький по смыслу проект - уже не вмещается в 2К оперативы ;)

Ruzh
Offline
Зарегистрирован: 25.01.2018

DIYMan пишет:

sadman41 пишет:

Да ладно вам, написано неплохо. Использует F и будет всё еще неплоше.

А мы чо? Мы ничо :) Написано, действительно - во много раз лучше, чем у многих новичков. И видно, что с английским норм, как минимум. Вопрос-то больше касался того, что простенький по смыслу проект - уже не вмещается в 2К оперативы ;)

повторюсь, что не знал за это и признаю ошибку! и что почитаю и перепишу - подтверждаю.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Вот как минимум эти три:

permission_to_start
engine_now_works
engine_stalled 

судя по коду (могу ошибаться) - булевы флаги, соответственно, чуть пожертвовав размером кода, можно в оперативке высвободить два байта. Почитай про битовые поля, если ломает битовыми масками оперировать - и код не утратит читабельности ;) Например:

#pragma pack(push,1)
typedef struct
{
	uint8_t permission_to_start : 1;
	uint8_t engine_now_works : 1;
	uint8_t engine_stalled  : 1;
} Flags;
#pragma pack(pop)

///////
Flags flags;
//////


/////
Serial.println(sizeof(Flags));

if(flags.engine_stalled)
{
	// bla bla
}

Остальное компилятор сделает за тебя "под капотом" - сам просчитает нужные маски/сдвиги, чтобы достучаться до нужного бита/бит в битовом поле.

 

Ruzh
Offline
Зарегистрирован: 25.01.2018

сейчас так, как здоровье позволит перепишу и скину результат.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ruzh пишет:

сейчас так, как здоровье позволит перепишу и скину результат.

Пока просто оберни все строки в F() - и посмотри разницу. Это недолго. Судя по всему, там главный расход оперативки - как раз за строками ;)

sadman41
Offline
Зарегистрирован: 19.10.2016

Еще можно debug-принты в Serial под условную компиляцию вынести. После отладки нечего им делать в прошивке.

#define DEBUG_ON
...

#if defined(DEBUG_ON)
#define DEBUG(x) x
#else
#define DEBUG(X) /* blank */
#endif

....

  DEBUG( Serial.begin(...); )
  DEBUG( Serial.print(F("Debug activated @ ")); Serial.println(millis()); )

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

DIYMan пишет:

Всего 300 строчек? За два часа - можно раза в два больше написать, было бы желание ;) Ладно, подождём - тут такая интрига, что я не удержался, и в ожидании открыл:

 

Вообще-то профессионал за 2 часа в среднем пишет 8 строк кода. Нормального отлаженного кода. Того кода, который войдет в проект. То, что для того, чтобы отладить 8 строчек кода, нужно написать дополнительно 80 строчек кода, которые нужны исключительно для проверки и в окончательный проект не войдут - разговор отдельный.

Но 300, а тем более - 600 строк - IMHO цифра неразумная.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

andriano пишет:

DIYMan пишет:

Всего 300 строчек? За два часа - можно раза в два больше написать, было бы желание ;) Ладно, подождём - тут такая интрига, что я не удержался, и в ожидании открыл:

 

Вообще-то профессионал за 2 часа в среднем пишет 8 строк кода. Нормального отлаженного кода. Того кода, который войдет в проект. То, что для того, чтобы отладить 8 строчек кода, нужно написать дополнительно 80 строчек кода, которые нужны исключительно для проверки и в окончательный проект не войдут - разговор отдельный.

Но 300, а тем более - 600 строк - IMHO цифра неразумная.

Вообще-то, по опыту - за пару часов пишется и больше 600 строчек. Естественно, вы поймались на простейшем приёме, а именно - недостаточной входной информации. Архитектура - тоже важная часть проекта, и эти строчки кода - тоже входят в строчки проекта. Или будете утверждать, что заголовочники - нафик, и всё, что описано в них - писать не нужно? Я вам в заголовочниках распишу архитектуру среднего проекта, при этом по кол-ву строчек кода там вполне может быть далеко за несколько сотен. 

Я не говорю, что надо гнаться за кол-вом строчек кода, но и "Вообще-то профессионал за 2 часа в среднем пишет 8 строк кода" - это тоже дичь, ибо на вкус и цвет - не только фломастеры, но и карандаши, и кисти с красками есть.

Про юнит-тесты - скромно промолчу, ибо было упоминание про "которые нужны исключительно для проверки и в окончательный проект не войдут - разговор отдельный". Хотя и не согласен в корне: что значит - в проект не войдут? Они что - сбоку приляпаны? Любое юнит-тестрирование, любой отладочный код - суть часть проекта, неотъемлемая часть. То, что данный код не попадает в продакшн - не делает его кодом-невидимкой, и эти строчки кода - тоже учитываются, в ЛЮБОМ случае. Например, у нормального программиста (нас в расчёт не берём, мы ненормальные все :)) - должно быть в крови проверять данные хотя бы ASSERT'ом - эту строчку кода в расчёт не берём? Посмотрел бы я, каких люлей выдаст тимлид, если увидит у джуниора отсутствие ASSERT'ов на кодревью.

З.Ы. Чтобы не быть голословным, можем поступить так: опишите суть абстрактного проекта средней сложности, и, как я буду свободен - дам отмашку, засечём время, я набросаю тупо архитектуру, по факту посмотрим - сколько строчек кода она займёт, и какое время для её написания потребовалось.

З.З.Ы. Вон, у sadman41 чуть выше - 10 строчек написано, за секунды :)