Если у вас есть несколько источников тактовых импульсов (а MSP430F2274, кажется, имеет это с первого взгляда), вы можете использовать непредсказуемый дрейф между этими источниками для энтропии, если вам абсолютно ничего не лучше.
Способ сделатьиспользует два источника, один в качестве временной базы, для измерения тиков другого в течение периода.Количество тиков будет немного отличаться, так как два источника синхронизации независимы.В зависимости от того, какие опции доступны для таймеров, это может быть сделано таймерами, в противном случае даже сторожевой таймер может быть опцией, настроенной как интервальный таймер (если ничего больше, он обычно может работать на источнике тактовых импульсов, отличном от основного тактового генератора).).
Этот метод может потребовать некоторого времени для настройки (поскольку часы не сильно отклоняются от заданной частоты, поэтому вам нужно подождать относительно долго, чтобы собрать значимое количество случайных отклонений между ними, секунды или около того, может быть, достаточно).
В противном случае, как упоминал Клиффорд, вы можете получить энтропию из своего окружения, что, безусловно, лучше, если у вас есть такое окружение.Единственная хорошая вещь в этом (дрейф между источниками тактовых импульсов) состоит в том, что это очень вероятно, доступно для любой установки.
Кстати, вы не можете сделать srand(time(0))
, просто откуда вы ожидаете time()
чтобы узнать количество секунд с начала эпохи на микроконтроллере?:)