Колитесь, кто развлекается?

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

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

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

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

Мужики, может лучше оное вещество не трогать?

а что там? а то у меня на работе Гайвер заблокирован

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

Ну, там Великий опять впаривает свой макрос everyMillis (он и у нас его активно впаривал), вот он

typedef uint16_t KaTime;
#define kaMillis()   ((KaTime)millis())

#define everyMillis(interval, action)         \
{                                             \
  static KaTime t = 0U;                       \
  if( kaMillis() - t > ((KaTime)(interval)) ) \
  {                                           \
    t = kaMillis();                           \
    { action }                                \
  }                                           \
}

А ему указали, что называть переменную просто - "t" в универсальном макросе весьма чревато и привели пример, когда это повалится нахрен безо всяких варнингов.

Ну, ответ Великого понятен. Во первых "сам дурак", а технически два совета: 1) переименуй переменную, 2) добавь ещё один уровень фигурных скобок, а то компилятор выбросил цикл за ненадобностью. Второй совет и пояснения особенно доставляют - не деление в дефайне, конечно, но тоже ... свидетельство высочайшего уровня, всегда присущего Великому.

Только вот шутки-шутками, а я бы его не троллил. Припрётся ведь! Он и так там уже заподозрил, что это отсюда кто-то. Ну, кривой у него макрос, ну и хрен с ним. А что у него прямое-то?

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

открыл с телефона, почитал...

Я думаю боятся нечего. Архат давно "не торт". Он и на гайверофоруме почти не появлляется уже.

А для второго персонажа кончится тем, что "Дартаньяна" забанят по IP. У админов гайверофорума даже отдельная формулировка причины бана есть для этого случая - "умники с ардуино.ру"

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

Печальнее другое - сколько вполне вменяемых персонажей с форума (со многими общался и переписывался) поставило в этом споре лайки Архату, хотя надо бы наоборот

KindMan
Offline
Зарегистрирован: 19.12.2018

b707 пишет:

Печальнее другое - сколько вполне вменяемых персонажей с форума (со многими общался и переписывался) поставило в этом споре лайки Архату, хотя надо бы наоборот


Так это как и здесь - Архат старожил, а Колян только прибыл :)

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

KindMan пишет:
Архат старожил, а Колян только прибыл :)
Я тоже так думаю. Человек "в авторитете", а тут новорег какой-то.

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

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

KindMan пишет:
Архат старожил, а Колян только прибыл :)
Я тоже так думаю. Человек "в авторитете", а тут новорег какой-то.

100500 это наш Колян )))

Kakmyc
Offline
Зарегистрирован: 15.01.2018

У гивера спорить на форуме бесполезно.
Там идиоты криворукие с опилками в голове в почёте.
Так сказать, контингент по автору.

Green
Offline
Зарегистрирован: 01.10.2015

Как раз мужичку переделываю Гайверовский скетч.)
Мелкие ошибки, магические цифры, особенно в адресации ЕЕПРОМ... терпимо.

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

Green пишет:

Как раз мужичку переделываю Гайверовский скетч.)
Мелкие ошибки, магические цифры, особенно в адресации ЕЕПРОМ... терпимо.

терпимо, пока проект маленький. А как побольше - так сразу в проекте "неповторимый гайверовский стиль" - 15-20 шт файлов .ino , содержание которых абсолютно не коррелирует с названием.

 

Green
Offline
Зарегистрирован: 01.10.2015
    EEPROM.writeByte(100, 10);
    for (byte i = 0; i < 28; i++) {
      EEPROM.writeInt(i * 2, STOCK_UP);
      EEPROM.writeByte(90, 15);
    }

Вот например. Адреса (100, 90) от балды. В 90 28 раз, для надёжности очевидно.)

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

Green пишет:
В 90 28 раз, для надёжности очевидно.)
Не, ну а вдруг не пропишется? Это вы тут, блин, теоретики - раз пихнули и "должно работать". А опытный человек - он знает, что "в действительности всё не так, как на самом деле" и иногда с первого раза не прописывается. Иногда и со второго - тоже. Опыт подсказал ему, что попыток записи должно быть 28 потому, что что 27 может не хватить, а 29 - уже перебор.

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

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

Green пишет:
В 90 28 раз, для надёжности очевидно.)
Не, ну а вдруг не пропишется? Это вы тут, блин, теоретики - раз пихнули и "должно работать". А опытный человек - он знает, что "в действительности всё не так, как на самом деле" и иногда с первого раза не прописывается. Иногда и со второго - тоже. Опыт подсказал ему, что попыток записи должно быть 28 потому, что что 27 может не хватить, а 29 - уже перебор.

в параллельную по стандарту надо было вроде шесть раз пихнуть

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

b707 пишет:
"Дартаньяна" забанят по IP
Насчёт бана не знаю, но тему вычистили :-)

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

.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

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

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

Исключительно понравилось - особенно, что Конечный Аналитический Аппарат (КАА) может делать одно или другое. А вот ничего не делать не может. Но он может "тупо ожидать события".

Однозначно - это будущее нашего программирования!

Green
Offline
Зарегистрирован: 01.10.2015

Да и макрос every() тут люди красивее делали.)

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

Да? Я не видел. Ссылка у Вас не сохранилась? Заодно и узнаем кто такой колян :-) Тем более, мне любопытно какое решение он архату обещал, такое, какое мне на ум пришло или какое-то другое.

Green
Offline
Зарегистрирован: 01.10.2015

С ходу не нашел, но там было, типа:

#define every(x) for (static uint32_t t = millis(); millis() - t >= (x); t += x)

Понятно, что для "уникальности"  t можно добавить __LINE__, а для компактности typeof.

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

Не понял, но всё равно - это не то, о чём шла речь на гивере (как я понял ту дискуссию). Здесь всё та же t и хоть добавляй туда line, хоть не добавляй, а принципиально проблема не решается. Как я понимаю, там удила закусились насчёт принципиального решения. Вариант с именем переменной вроде  __qw1176td2_uygcbu35__ не катит, т.к. "в принципе" юзер может использовать именно такую и это приведёт к неприятностям.

Понятно, что для практики такой "уникальности" более чем достаточно. Но, повторяю, мне показалось, что речь шла о принципиальном решении.

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

Юзер-то может и вот так сдуру сделать...

extern volatile unsigned long timer0_millis;

void setup() {
  Serial.begin(115200);
}

void loop() {
  timer0_millis  = random(1000, 5000);
  Serial.print("millis(): "); Serial.println(millis());
  delay(1000);
}

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

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

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

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

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

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

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

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

ЕвгенийП пишет:
заподозрил, что это отсюда кто-то

kalobyte это чел DIHALT'а (с easyelectronics).

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

Kalobyte - специалист по ФЛПрогу, а в Си как-то не блещет.
Правда не понятно, при чем тут он, в той теме он не засветился

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

ну хз, появлялся. чистили видимо.

я ради любопытства брожу по гуверу, чёто сайт хуже радиокота, вообще все мёртвое. на тему светодиодной лампы с приложением только какая-то самодеятельность, у этих бедняг вообще чтоли жизни нет - кнопки в приложении тыкать? мне если надо чото ргб подсветить, я делаю статично ВЧ пвм, энкодер, по кнопке клацать h/s/b, ну максимум вторую кнопку вклвыкл. ВСЁ! больше там НИЧЕГО не нужно. Какое приложение? фишка ради фишки ящитаю.

а других тем на этом форуме чёт не обсуждают

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

Voodoo Doll пишет:

я ради любопытства брожу по гуверу, чёто сайт хуже радиокота, вообще все мёртвое

ну не знаю, мож вы на каком другом сайте бродите, форум гайвера по активности точно не устпает нашему