Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Не знаю, как в теории, а на практике все мои попытки получить непредсказуемое состояние при подаче питания были неудачны, пока я не применил описанный ранее алгоритм. А пробовал я и таймер, и WDT, и АЦП... И стандартные функции... Если говорить о avr-gcc, то rand и srand в любых комбинациях там дают очень быстро узнаваемую последовательность...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Всем доброго дня коллеги. Только начал знакомство с языком Си. Есть вопросы. Вот прога, в среде Visual Studio: Пытаюсь получить ввод этого самого конца файла, что бы вывести в консоль надпись "end file", и только после нажатия Ctrl + z, а потом нажатия клавиши Enter, получается вызвать конец файла и сообщения "end file". Простым нажатием Ctrl + z, ничего не выходит. Так и должно быть? И при чем тут Enter ?
Не знаю, как в теории, а на практике все мои попытки получить непредсказуемое состояние при подаче питания были неудачны, пока я не применил описанный ранее алгоритм. А пробовал я и таймер, и WDT, и АЦП...
Я вон там свои экзерциссы с генерацией случайных чисел подручными способами описывал. Вполне годно получалось.
Что-то я затупил... есть конструкция do{.....} while(0); если внутри конструкции выполняется continue - цикл повторится или как? у меня он не повторяется почему-то
Код:
do { update_coordinate(&possible_destination, possible_bearing); possible_walls = maze[possible_destination.north*maxX + possible_destination.east]; if ((possible_walls & 0x0f)!=((possible_walls & 0xf0)>>4)) return 0;// мы в этой ячейке еще точно не были - надо посетить if ((possible_walls == 0xaa)||(possible_walls == 0x55)) continue;// если попали в "туннель" повторяем движение. } while(0);
В отладчике вижу, что possible_walls имеет значение 0x000000AA и последний if даёт 1, но следущим шагом я оказываюсь вне цикла. что я не понимаю?
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
если требуется случайное число для "бытовых" целей, то и штатный rand с предустановкой по моему методу вполне приемлем. у вас, очевидно, цели были совсем иные...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
чтобы rand() не работал при каждом включении одинаково я понял, Спасибо!!!
у меня еще вопрос в котором запутался и увяз по уши ...
есть в мигалки эффекты, чтобы они случайным образом выбирались применил rand()%29 ВОПРОС: как сделать чтобы все 29 эффектов от мигали в случайном порядке НЕ повторяясь. может флаги наделать или перемешивать их как то ...
Спойлерwhile (1) { switch(rand()%29) { case 0: view_flasher_0(); break; case 1: view_flasher_1(); break; case 2: view_flasher_2(); break; case 3: view_flasher_3(); break; ... case 28: view_flasher_28(); break; }
Последний раз редактировалось Serzh2000 Вт янв 19, 2021 07:30:27, всего редактировалось 2 раз(а).
если флагами то наверно когда будет оставаться один или два не отмеченных эффекта то их порядковый номер можно долго ждать пока выпадет случайно... а как массивом у меня не получается
Цитата:
case 28: не выполнится никогда. Выражение %28 никогда не даст результат 28.
/* Arrange the N elements of ARRAY in random order. Only effective if N is much smaller than RAND_MAX; if this may not be the case, use a better random number generator. */ void shuffle(uint8_t *array, size_t n) { if (n > 1) { size_t i; for (i = 0; i < n - 1; i++) { size_t j = i + rand() / (RAND_MAX / (n - i) + 1); uint8_t t = array[j]; array[j] = array[i]; array[i] = t; } } }
...
while(1) { srand(...); shuffle(&arr, sizeof(arr)); for(uint8_t i = 0, i++, i <= MAX { effect(arr[i]); } }
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения