Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: генератор псевдослучайных чисел
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Peacemaker
В общем у меня есть задание, где нужно с генератора случайного 8-ми разрядного кода подавать двоичные числа на ноги RA Pic16F84.
Вопрос:
Если у меня код 8 разрядов, а количество ног в Pic-e всего 5, что тут можно придумать?(Ноги RB не предлагать юзать)
Я хотел бы чтобы код подавался по 2 или 4 бита за 4 или 2 тактов, возможно ли это? И что для этого нужно сделать?
Или лучше генератор кода делать программно?(если это возможно)
Есть ли в каких-нибудь программах-симуляторах такие генераторы?
Еще был вариант использовать генератор белого шума + АЦП, но в этом пике АЦП нет. А брать AVR или еще какие-либо контроллеры не очень хочется
MaslovVG
Цитата(Peacemaker @ Dec 5 2011, 21:02) *
Есть ли в каких-нибудь программах-симуляторах такие генераторы?
Еще был вариант использовать генератор белого шума + АЦП, но в этом пике АЦП нет. А брать AVR или еще какие-либо контроллеры не очень хочется

Почитайте на тему генератор псевдослучайных чисел или про М- последовательности Наиболее подробно расмотрено в "Д.Кнут Искуство пограммирования для ЭВМ т.2" Это классика.
ViKo
Делал вот так.
Код
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
...
Peacemaker
А можно ссылку на источник этого кода? a14.gif
Или вы сами писали его?
ViKo
Цитата(Peacemaker @ Dec 6 2011, 16:25) *
А можно ссылку на источник этого кода? a14.gif
Или вы сами писали его?

Сам писал. Из книжки ("Искусство схемотехники" или "Полупроводниковая схемотехника") нашел, как завести обратные связи из регистра на "исключающее или", чтобы получилась последовательность максимальной длины.
А дальше - берите любую часть (старший или младший из регистров), а хотите целиком 16 битов. И посылайте ее в свой порт, или еще куда подальше.
Peacemaker
Еще вопросик:
Что за команды:
clrc и skpnz?
ViKo
Цитата(Peacemaker @ Dec 6 2011, 17:09) *
Еще вопросик:
Что за команды:
clrc и skpnz?

Это альтернативное представление команд стереть флаг переноса и перескочить, если не 0. Их и еще кучу удобных аббревиатур можно вычитать в документации по MPASM. Той, что скачивается вместе с MPLAB с сайта Microchip.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.