Ну, я такую функцию использую. Моделируется 31-разрядный регистр сдвига с обратной связью.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 07 февраля 2005 г. 12:38
В ответ на: У меня такое очучение, что на тиньках эта функция не работает (+) отправлено IAR 07 февраля 2005 г. 11:19


typedef
union _random {
long number;
char bytes[4];
}
Random;

Random random;

static void rand(char seed)
{
char _temp;

if (seed) // Initialize the generator
random.number = seed;
_temp = (random.bytes[0] ^ random.bytes[3]) & (1<<6);
random.number <<= 1;
if (_temp)
random.bytes[0] |= 0x01;
}


Пример использования:

rand(1); // Initialize generator
......
rand(0); // Get next random number
var = random.bytes[0] % 16;//


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru