Рандом
-
- Лейтенант
- Сообщения: 539
- Зарегистрирован: 06 сен 2015, 07:09
- Откуда: Курган
Рандом
Добрый день, уважаемые форумчане. Суть в следующем когда пользуешься блоком рандом то очень часто цепочки значений повторяются при каждом старте устройства (особенно при малом разбросе значений). Пытался привязывать к значению аналоговых входов но если они вися в воздухе то 90% там около максимальные значения и рандом опять получается "предсказуемым" есть ли способ реализовать генератор псевдослучайных чисел более случайным?
Рандом
попробуй привязаться к чему-нибудь уникальному, например дате со времинем?! т.е. создать из них какуюто переменную а после генерировать. на компе некоторые программы за переменую для генерации чего-либо берут координаты мишки а ты возьми дату и время с секундами.
Рандом
Не самый удачный вариант. А если время в проекте не будет использоваться? Зачем ставить шильд?dim21841 писал(а):например дате со времинем?!
Предлагаю такой вариант
Создать пользовательский блок с кодом на СИ, считать в нем значение millis() (время работы контроллера с момента включения, ms) и присвоить это значение перемененной типа Unsigned Long Integer. Далее перевести значение переменной в строку и вырезать необходимое количество знаков. Далее опять перевод в числовое значение и получаем рандомное число с необходимым количеством разрядов.
Последний раз редактировалось Naladchik 20 фев 2016, 08:44, всего редактировалось 1 раз.
-
- Лейтенант
- Сообщения: 539
- Зарегистрирован: 06 сен 2015, 07:09
- Откуда: Курган
Рандом
Как вариант, но если честно то задействовать для этого шильд часов .... как то расточительно.dim21841 писал(а):попробуй привязаться к чему-нибудь уникальному, например дате со времинем?! т.е. создать из них какуюто переменную а после генерировать. на компе некоторые программы за переменую для генерации чего-либо берут координаты мишки а ты возьми дату и время с секундами.
Вариант интересный но на СИ я совсем не спец, совсем.Naladchik писал(а):Создать пользовательский блок с кодом на СИ, считать в нем значение millis() (время работы контроллера с момента включения, ms) и присвоить это значение перемененной типа Unsigned Long Integer. Далее перевести значение переменной в строку и вырезать необходимое количество знаков. Далее опять перевод в числовое значение и получаем рандомное число с необходимым количеством разрядов.
Рандом
я так же, все на уровне "научного тыка", саму идею представляю а вот в плане реализации пока ничем помочь не могу. Уверен что тут все должно быть просто.Oleg1345140 писал(а):...но на СИ я совсем не спец, совсем.
-
- Лейтенант
- Сообщения: 539
- Зарегистрирован: 06 сен 2015, 07:09
- Откуда: Курган
Рандом
Я вот еще идею терморезистора рассматривал, но там тоже свои нюансы. А может есть какие нибудь элементарные модули или алгоритмы.
Рандом
Oleg1345140, что то я затравился идеей.
Вот вариант попробуйте.
Пробный вариант, но вроде получилось.
Функция millis не понравилась, с micros получше будет
Вот вариант попробуйте.
Пробный вариант, но вроде получилось.
Функция millis не понравилась, с micros получше будет
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Naladchik 20 фев 2016, 21:06, всего редактировалось 1 раз.
-
- Лейтенант
- Сообщения: 539
- Зарегистрирован: 06 сен 2015, 07:09
- Откуда: Курган
Рандом
С утра попробую, а пока с наступающим)))Naladchik писал(а):Пробный вариант, но вроде получилось.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей