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

 
 
> генератор псевдослучайных чисел
Peacemaker
сообщение Dec 5 2011, 17:02
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 5-12-11
Пользователь №: 68 688



В общем у меня есть задание, где нужно с генератора случайного 8-ми разрядного кода подавать двоичные числа на ноги RA Pic16F84.
Вопрос:
Если у меня код 8 разрядов, а количество ног в Pic-e всего 5, что тут можно придумать?(Ноги RB не предлагать юзать)
Я хотел бы чтобы код подавался по 2 или 4 бита за 4 или 2 тактов, возможно ли это? И что для этого нужно сделать?
Или лучше генератор кода делать программно?(если это возможно)
Есть ли в каких-нибудь программах-симуляторах такие генераторы?
Еще был вариант использовать генератор белого шума + АЦП, но в этом пике АЦП нет. А брать AVR или еще какие-либо контроллеры не очень хочется
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
MaslovVG
сообщение Dec 5 2011, 17:44
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(Peacemaker @ Dec 5 2011, 21:02) *
Есть ли в каких-нибудь программах-симуляторах такие генераторы?
Еще был вариант использовать генератор белого шума + АЦП, но в этом пике АЦП нет. А брать AVR или еще какие-либо контроллеры не очень хочется

Почитайте на тему генератор псевдослучайных чисел или про М- последовательности Наиболее подробно расмотрено в "Д.Кнут Искуство пограммирования для ЭВМ т.2" Это классика.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 6 2011, 10:14
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Делал вот так.
Код
Reset
...
    movlw 01000100b
    movwf PRSLo
    movwf PRSHi
...
NewPRS
    clrc   ; new random sequence state
    rlf PRSLo
    rlf PRSHi
    movlw 01h
    btfsc PRSHi, 7
    xorwf PRSLo
    btfsc PRSHi, 6
    xorwf PRSLo
    movfw PRSLo  ; check not zero
    iorwf PRSHi, w
    skpnz
    goto Reset
...
Go to the top of the page
 
+Quote Post
Peacemaker
сообщение Dec 6 2011, 13:25
Сообщение #4





Группа: Участник
Сообщений: 10
Регистрация: 5-12-11
Пользователь №: 68 688



А можно ссылку на источник этого кода? a14.gif
Или вы сами писали его?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 6 2011, 14:16
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Peacemaker @ Dec 6 2011, 16:25) *
А можно ссылку на источник этого кода? a14.gif
Или вы сами писали его?

Сам писал. Из книжки ("Искусство схемотехники" или "Полупроводниковая схемотехника") нашел, как завести обратные связи из регистра на "исключающее или", чтобы получилась последовательность максимальной длины.
А дальше - берите любую часть (старший или младший из регистров), а хотите целиком 16 битов. И посылайте ее в свой порт, или еще куда подальше.
Go to the top of the page
 
+Quote Post
Peacemaker
сообщение Dec 6 2011, 15:09
Сообщение #6





Группа: Участник
Сообщений: 10
Регистрация: 5-12-11
Пользователь №: 68 688



Еще вопросик:
Что за команды:
clrc и skpnz?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 6 2011, 17:21
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Peacemaker @ Dec 6 2011, 17:09) *
Еще вопросик:
Что за команды:
clrc и skpnz?

Это альтернативное представление команд стереть флаг переноса и перескочить, если не 0. Их и еще кучу удобных аббревиатур можно вычитать в документации по MPASM. Той, что скачивается вместе с MPLAB с сайта Microchip.
Go to the top of the page
 
+Quote Post

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

 


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


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