| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
PIC18 генерация псевдослучайных чисел
25.11.2011, 20:18
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
PIC18 генерация псевдослучайных чисел
Пытаюсь программным путем на PIC18м генерировать псевдослучайные числа, компилятор HI_TECH 9.65. Но ничего не получается, программа тупо виснет. Пробовал и встроенной функцией rand() и писал свою random(), но виснет в обоих случаях  Отлаживаю в Протеус.
|
PHP код:
|
void main(void)
{
srand(0);
//int b = random(int max = 255);
int b = rand();
//----------------------------
USARTInit();
USARTWriteInt(b,255);
|
Проект прилагаю.
|
|
|
|
Сказали "Спасибо" george carpenter
|
|
|
25.11.2011, 20:44
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: PIC18 генерация псевдослучайных чисел
Изменил srand(0); и все заработало, однако не очень понятно тогда что в него задавать??? Если например хочу генерировать число в диапазоне от 0 до 255
|
|
|
|
Сказали "Спасибо" george carpenter
|
|
|
25.11.2011, 20:50
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: PIC18 генерация псевдослучайных чисел
Если делать как в мануале, то комплиятор ругается на time()
|
PHP код:
|
time_t toc;
time(&toc);
srand((int)toc);
|
|
|
|
|
Сказали "Спасибо" george carpenter
|
|
|
25.11.2011, 23:28
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: PIC18 генерация псевдослучайных чисел
Еще раз говорю почему-то функция time() не определяется!
Error [499] ; 0. undefined symbol:
_time(conv.obj)
|
|
|
|
Сказали "Спасибо" george carpenter
|
|
|
26.11.2011, 12:28
|
|
|
Прохожий
Регистрация: 26.09.2011
Сообщений: 6
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
|
Re: PIC18 генерация псевдослучайных чисел
Ну библиотеку наверное нужно подключить.
типа как в винде time.h
завести генератор от часов srand ( time(NULL) );
диапазон rand() % 255
|
|
|
|
Сказали "Спасибо" Dotoro22
|
|
|
26.11.2011, 13:09
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: PIC18 генерация псевдослучайных чисел
Подключена библиотека, я не совсем идиот. И rand() % 255 тоже сделал.
|
|
|
|
Сказали "Спасибо" george carpenter
|
|
|
26.11.2011, 13:56
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: PIC18 генерация псевдослучайных чисел
Сообщение от george carpenter
|
|
я не совсем идиот
|
Не совсем...
|
Цитата:
|
TIME
Synopsis
#include ‹time.h›
time_t time (time_t * t)
Description
This function is not provided as it is dependant on the target system supplying the current time. This function will be user implemented.
|
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо st_1 за это сообщение:
|
|
|
26.11.2011, 14:38
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: PIC18 генерация псевдослучайных чисел
Сообщение от st_1
|
Не совсем...
|
И че дальше? Мне от этого не легче. Как эту функцию реализовать?
|
|
|
|
Сказали "Спасибо" george carpenter
|
|
|
26.11.2011, 14:46
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: PIC18 генерация псевдослучайных чисел
Как реализовать часы??? 
А нужно ли???
Похоже... вы сами себе не можете внятно сформулировать задачу... отсюда... и полная невидимость её решения...
|
|
|
|
26.11.2011, 14:50
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: PIC18 генерация псевдослучайных чисел
Сообщение от st_1
|
Как реализовать часы??? 
Похоже... вы сами себе не можете внятно сформулировать задачу... отсюда... и полная невидимость её решения...
|
Что значит часы? Функцию time()!!!!
Задача для меня ясна! Нужно получить текущее время, чтобы передать его в srand().
|
|
|
|
Сказали "Спасибо" george carpenter
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:58.
|
|