Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Nios || генерация случайного числа
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Acvarif
Имеется байт 0x00 в котором необходимо в каждый последующий момент времени (каждый цикл в 2 мс) случайным образом установить в 1 один из 8_ми бит. Посоветуйте please как это можно реализовать программно в Nios ||. Какие библиотеки необходимо подключить в .c файл для работы функции rand()? Или может другие варианты...
Пробовал так
Код
    srand(time(NULL));
    char chislo = rand();

Но компилятор пишет implicit declaration of function 'rand'
Burenkov Sergey
Цитата(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> не забыли?
Acvarif
Цитата(Burenkov Sergey @ Nov 10 2016, 12:41) *
#include <stdlib.h> не забыли?

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

Вызов кода делаю один раз в секунду. chl (локальная) должно меняться каждую секунду. Но оно всегда = 0xFF
vadimuzzz
а это подключили:
Код
#include <time.h>
Acvarif
Цитата(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)); нужно вызывать перед основным циклом. Заработало...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.