Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: rand()
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
SasaVitebsk
Кто подскажет формулу фирменной ф-ции rand() из IAR AVR библиотеки.

Или может предложит свой вариант не очень навороченный. В принципе надо пулучить или байт или слово. Нужно определить мощность последовательности. (попробую сам сделать)
Warlockwolf
- если я правильно понял вопрос.

использую такой.

u8 Radom(){
iran=(iran*(u32)4096+(u32)150889)%(u32)714025;
return iran/0xfff;
};

iran-32битный, храню в пзу.

формулу вычитал в инете.

первый раз инициализирую-- iran=считываю ченить с ацп несколько раз. или загоняю число из компа.
SasaVitebsk
Спасибо вы всё правильно поняли.
Правда тут 2 деления. В IAR умножения и сложения. Но это тоже принимается как вариант.
Если ещё кто выскажется буду благодарен.
IgorKossak
Код
#include "stdlib.h"

unsigned long int __next_rand = 1;

int rand(void)
{
  __next_rand = __next_rand * 1103515245 + 12345;
  return (unsigned int) (__next_rand >> 16) & RAND_MAX;
}
SasaVitebsk
Оно. Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.