Экономный аналог функции random

Добрый день! Хочу сделать “игральный кубик” на 6 адресных светодиодах и Attiny 13, все работает но памяти не хватает, так как первый вызов random уже забирает половину памяти около 500 байт. Может есть какая-то замена до 100 байт ?

Возьми контроллер посовременнее, не страдай.

Attiny85 по ногам такой же, а ресурсов в 8 раз больше.

Есть даже F407 но, у меня как раз Attiny 6 штук лишних, и хотелось бы их в первую использовать. Если не получится поставлю F030F4P6

выкинь, не жалко, у меня аж 10, для мелкоты 85 самое то

1 лайк

85 нету, нашел одну 88 поставлю значит, спасибо)

Памяти не ест, наличие микроконтроллера необязательно.

1 лайк

На старом форуме обсуждали

я уже и забыл…смотрю…я ли это писал )))
опять наверно в состоянии медитации был )))

Если это кубик игральный, то достаточно таймер запустить с отсчетом до 5.
Тупо по событию броска выводить состояние счётчика.
Если среди игроков нет Кларка Кента или Барри Аллена то вполне правдоподобный генератор случайных чисел.

Или просто millis()%6; попробовать.

Не поможет. Значения выходят за рамки 1-6. Или я не понял идею?
Да и включение миллис кушает немало

а millis()%6+1 ???
А если еще вместо миллис просто запустить таймер на высокой частоте по кругу и по тоже формуле пересчитывать значение от 1 до 6 ???

 (millis()%6)+1; ???

Я туплю наверно, не понимаю:
9911/6 = 1651,833333333

ОЧЕНЬ НЕОЖИДАННО !!!
% это MODULO !

1 лайк

А я и не знал такого! Спасибо, сейчас почитаю, уже нашёл))
Screenshot_60
https://habr.com/ru/articles/421071/
P.S. Я думал, это просто остаток от деления

Чёт я не понял. Всё ж правильно.
(Millis()%5)+1
Modulo выдаёт остаток от деления.

при делении 5 на 5 будет 0 в остатке )))

И? Так потом единичку прибавляем же. И будет от 1 до 6.