Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по Pic  (Прочитано 12859 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Peacemaker
Новенький

ru
Offline Offline

« : 05-12-2011 15:47 » 

В общем у меня есть задание, где нужно с генератора случайного 8-ми разрядного кода подавать двоичные числа на ноги RA Pic16F84.
Вопрос:
Если у меня код 8 разрядов, а количество ног в Pic-e всего 5, что тут можно придумать?(Ноги RB не предлагать юзать)
Я хотел бы чтобы код подавался по 2 или 4 бита за несколько тактов, возможно ли это? И что для этого нужно сделать?
Или лучше генератор кода делать программно?(если это возможно)
Есть ли в каких-нибудь программах-симуляторах такие генераторы?
Еще был вариант использовать генератор белого шума + АЦП, но в этом пике АЦП нет.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 05-12-2011 17:45 » 

Так в чем вопрос заключается? Как сделать генератор или как подать данные в PIC? Какие еще параметры тебе заданы? Почему нельзя использовать RB? Ведь 0 и 4:7 являются источниками прерываний, что упрощает программу. Не рассматривал последовательный ввод? Это еще проще.
« Последнее редактирование: 05-12-2011 17:55 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Peacemaker
Новенький

ru
Offline Offline

« Ответ #2 : 05-12-2011 17:50 » 

RXL,
Мне не понятно, можно ли кидать данные по 2 бита или по 4, за несколько тактов, чтобы в итоге мы имели 8 разрядный код в буферный регистре, а затем в МК?
Как сделать генератор или как подать данные в PIC? Какие еще параметры тебе заданы?
И на эти вопросы можно тоже подробнее?


Добавлено через 4 минуты и 27 секунд:
Какие еще параметры тебе заданы? Почему нельзя использовать RB? Ведь 0 и 4:7 являются источниками прерываний, что упрощает программу.
В общем задание само вот:
Разработать МПУ для контроля и индикации параметров изменяющегося по случайному закону 8-ми разрядного двоичного кода. Результаты контроля должны выводиться на индикатор. Контролируемый параметр - Количество чисел кода, в которых за время контроля Т в четырех младших разрядах появляются 0000. 
Я хотел на RB использовать семисегментные индикаторы.
« Последнее редактирование: 05-12-2011 17:55 от Peacemaker » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 05-12-2011 17:58 » 

Peacemaker, прежде всего разбери задание - язык его неудобоваримый. Индикаторы потом будешь выбирать. Сперва пойми суть и найди в ней систему.
1. Входные данные.
2. Выходные данные.
3. Дополнительные условия.
Не пытайся опять сюда всунуть индикаторы.
« Последнее редактирование: 05-12-2011 18:00 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Peacemaker
Новенький

ru
Offline Offline

« Ответ #4 : 05-12-2011 18:03 » 

RXL,
Я это уже давным давно сделал Улыбаюсь
У нас есть 8 разрядный код, поступающий с генератора слов.
Далее программно мы сравниваем 4 младших разряда в этих кодах. Если все из них = 0000, то мы выводим единицу на индикатор и т.д.
Из 256 комбинаций получаются 16 совпадений.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 05-12-2011 18:18 » 

Если все сделал, то не понятны твои затруднения.

Лично я бы пошел по пунктам, т.к. лично мне пока ничего не понятно.
1. Источник "изменяющегося по случайному закону 8-ми разрядного двоичного кода": интерфейс какой? Данные поступают синхронно или асинхронно? Источник синхронизации, его параметры? Если асинхронно, то надо понимать, что м/к обрабатывает данные дискретно. Возникает вопрос: каковы временные рамки кванта опроса?


Я понимаю, что у тебя "чиста лаба" и ничего серьезного в ней нет. Но учиться для галочки - это не наш метод. Банально времени на это жаль - лучше пойду пива выпью или еще что-нибудь бесполезное сделаю.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 05-12-2011 19:16 » new

Вопрос:
Если у меня код 8 разрядов, а количество ног в Pic-e всего 5, что тут можно придумать?(Ноги RB не предлагать юзать)

Типовое решение: прицепить к контроллеру сдвиговый регистр. Понадобится всего 2 бита - на одном задавать данные, другим генерировать такты сдвига. Конечно, быстродействие будет на порядок ниже, чем при параллельном выводе, но это неизбежная плата за экономию ножек МК.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
v2
Помогающий

ua
Offline Offline

« Ответ #7 : 06-12-2011 09:03 » 

Далее программно мы сравниваем 4 младших разряда в этих кодах. Если все из них = 0000, то
       зачем 8 ног  Здесь была моя ладья...
 Аппаратное или , - и  в аккурат 5 ног

« Последнее редактирование: 06-12-2011 09:10 от v2 » Записан
DneprSMV
Помогающий

kz
Offline Offline
Пол: Мужской

« Ответ #8 : 07-12-2011 14:22 » 

Peacemaker,
Цитата
Или лучше генератор кода делать программно?(если это возможно)
Генератор случайных чисел (псевдослучайных) можно получить из генератора циклической контрольной суммы - CRC - сдвиговый регистр с обратными связями. Тактировать регистр - от таймера.
Значение CRC и будет случайным Улыбаюсь
---
В качестве расширителя портов ввода-вывода 74HC165, 595 (сдвиговые регистры на входы и выходы).
Записан

"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines