acvarif 0 10 ноября, 2016 Опубликовано 10 ноября, 2016 (изменено) · Жалоба Имеется байт 0x00 в котором необходимо в каждый последующий момент времени (каждый цикл в 2 мс) случайным образом установить в 1 один из 8_ми бит. Посоветуйте please как это можно реализовать программно в Nios ||. Какие библиотеки необходимо подключить в .c файл для работы функции rand()? Или может другие варианты... Пробовал так srand(time(NULL)); char chislo = rand(); Но компилятор пишет implicit declaration of function 'rand' Изменено 10 ноября, 2016 пользователем Acvarif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Burenkov 0 10 ноября, 2016 Опубликовано 10 ноября, 2016 · Жалоба Имеется байт 0x00 в котором необходимо в каждый последующий момент времени (каждый цикл в 2 мс) случайным образом установить в 1 один из 8_ми бит. Посоветуйте please как это можно реализовать программно в Nios ||. Какие библиотеки необходимо подключить в .c файл для работы функции rand()? Или может другие варианты... Пробовал так srand(time(NULL)); char chislo = rand(); Но компилятор пишет implicit declaration of function 'rand' #include <stdlib.h> не забыли? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 10 ноября, 2016 Опубликовано 10 ноября, 2016 · Жалоба #include <stdlib.h> не забыли? Да, подключил. Пробую так srand(time(NULL)); chl = rand(); Вызов кода делаю один раз в секунду. chl (локальная) должно меняться каждую секунду. Но оно всегда = 0xFF Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 10 ноября, 2016 Опубликовано 10 ноября, 2016 · Жалоба а это подключили: #include <time.h> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 10 ноября, 2016 Опубликовано 10 ноября, 2016 (изменено) · Жалоба а это подключили: #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)); нужно вызывать перед основным циклом. Заработало... Изменено 10 ноября, 2016 пользователем Acvarif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться