Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
коваленко2
Здраствуйте пожалуйсто помогите осуществить генератор случайных чисел на базе msp430x16x, хотябы идейку, на чем основывать???
rezident
Самый простой генератор случайного состояния это младший бит АЦП. Без шуток!
АДИКМ
Посмотрите вот на этот пример.
http://focus.ti.com/mcu/docs/mcusupporttec...actName=slaa338
VAI
А чем не удовлетворяет функция из стандартной библиотеки С?
int rand( void );
коваленко2
Цитата(rezident @ Oct 12 2007, 22:19) *
Самый простой генератор случайного состояния это младший бит АЦП. Без шуток!

Как сопоставить это с числами???вообще не понимаю(((
yura-w
Цитата(коваленко2 @ Oct 13 2007, 08:53) *
Как сопоставить это с числами???вообще не понимаю(((


всетаки обратите внимание на:

VAI:
А чем не удовлетворяет функция из стандартной библиотеки С?
int rand( void );
коваленко2
Цитата(yura-w @ Oct 13 2007, 12:59) *
всетаки обратите внимание на:

VAI:
А чем не удовлетворяет функция из стандартной библиотеки С?
int rand( void );

дело в том что генератор долже быть!!!на базе mspшки, в этом и проблема
VAI
Цитата
дело в том что генератор долже быть!!!на базе mspшки, в этом и проблема

Я прекрасно понимаю, что радиостанция на танке, а не на транзисторах, но всё же, Вы пишете сразу в машинных кодах? Или Вы используете какой-либо компилятор (IAR очень популярен, ну или ССЕ от TI)?
Даже если Вы пишете на ассемблере, всегда есть возможность подключить С-шную библиотеку, которая содержит функцию rand().
И работать всё будет именно в msp-шке и результаты работы функции rand() Вы легко сможете
Цитата
Как сопоставить это с числами???
коваленко2
Цитата(VAI @ Oct 14 2007, 17:14) *
Я прекрасно понимаю, что радиостанция на танке, а не на транзисторах, но всё же, Вы пишете сразу в машинных кодах? Или Вы используете какой-либо компилятор (IAR очень популярен, ну или ССЕ от TI)?
Даже если Вы пишете на ассемблере, всегда есть возможность подключить С-шную библиотеку, которая содержит функцию rand().
И работать всё будет именно в msp-шке и результаты работы функции rand() Вы легко сможете

Нет я пишу на си, проблема в том что я начинающий.С таймером разобрался, с прерыванием тоже а вот это не понимаю(((
P.S. компилятор gss
VAI
Так попробуйте вызвать из своей программы

Код
a =  rand();


Вот исходник ИАРовского rand()

В файле stdlib.h
Код
#define RAND_MAX        32767


Код
/*                      - RAND.C -

   The ANSI "rand" function.
          
   $Name: Tyrone3 Tyrone2 Tyrone1b Tyrone1 V3_34O V3_34N Spiff7 V3_34M V3_34L V3_34K V3_34J V3_34I V3_34H V3_34G $

   Copyright 1986 - 1999 IAR Systems. All rights reserved.
*/

#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;
}
rezident
Тут на форуме уже была тема про генерацию случайных чисел. Там в одном из сообщений есть аттач Интеловской статьи. Почитайте.
http://electronix.ru/forum/index.php?s=&am...ost&p=55207
Цитата(VAI @ Oct 15 2007, 09:38) *
Вот исходник ИАРовского rand()

Это так называемая M-последовательность, генератор ПСЕВДОслучайных чисел. Период у него довольно большой, но не бесконечный.
P.S. вот еще одна статья про генерацию случайных чисел на основе звуковой карты. Принципы изложенные там можете переложить на свою платформу.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.