реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Nios || генерация случайного числа
Acvarif
сообщение Nov 10 2016, 07:17
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Имеется байт 0x00 в котором необходимо в каждый последующий момент времени (каждый цикл в 2 мс) случайным образом установить в 1 один из 8_ми бит. Посоветуйте please как это можно реализовать программно в Nios ||. Какие библиотеки необходимо подключить в .c файл для работы функции rand()? Или может другие варианты...
Пробовал так
Код
    srand(time(NULL));
    char chislo = rand();

Но компилятор пишет implicit declaration of function 'rand'


Сообщение отредактировал Acvarif - Nov 10 2016, 07:23
Go to the top of the page
 
+Quote Post
Burenkov Sergey
сообщение Nov 10 2016, 08:41
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145



Цитата(Acvarif @ Nov 10 2016, 10:17) *
Имеется байт 0x00 в котором необходимо в каждый последующий момент времени (каждый цикл в 2 мс) случайным образом установить в 1 один из 8_ми бит. Посоветуйте please как это можно реализовать программно в Nios ||. Какие библиотеки необходимо подключить в .c файл для работы функции rand()? Или может другие варианты...
Пробовал так
Код
    srand(time(NULL));
    char chislo = rand();

Но компилятор пишет implicit declaration of function 'rand'


#include <stdlib.h> не забыли?
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Nov 10 2016, 08:54
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(Burenkov Sergey @ Nov 10 2016, 12:41) *
#include <stdlib.h> не забыли?

Да, подключил.
Пробую так
Код
                    srand(time(NULL));
                    chl = rand();

Вызов кода делаю один раз в секунду. chl (локальная) должно меняться каждую секунду. Но оно всегда = 0xFF
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 10 2016, 10:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



а это подключили:
Код
#include <time.h>
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Nov 10 2016, 11:40
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(vadimuzzz @ Nov 10 2016, 14:32) *
а это подключили:
Код
#include <time.h>

Подключил. Странно, что не работает.
Придется в основном цикле сделать что-то вроде
Код
    alt_u8  chl, ch = 0x2;
    alt_u8  dirch = 0;
        if(ch & 0x81)
            dirch = (dirch ^ 0x1);
        if(dirch)
            ch = ch >> 1;
        else
            ch = ch << 1;
потом по запросу (по прерыванию) присваивать
Код
chl = ch;
printf("Число: %x \n", chl);
Не понятно почему rand не работает...
А.. srand(time(NULL)); нужно вызывать перед основным циклом. Заработало...

Сообщение отредактировал Acvarif - Nov 10 2016, 12:35
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 20:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016