Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


Ответ
Опции темы

Непоследовательный двоичный код

Непрочитано 31.01.2016, 21:58   #11
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

serg5768,
нихрена не понял из сообщения #1, но почему не использовать МК? у МК есть прерывание по изменению состояния выводов, считываем их и суммируем с базой таблицы, далее:
- для младших пиков есть команда с возвратом из прерывания с кодом;
- для авр просто считываем.
все адреса таблицы, отличные от данных, возвращают 0 или FF, можно что-то другое
Реклама:
jump вне форума   Ответить с цитированием
Непрочитано 31.01.2016, 21:59   #12
serg5768
Временная регистрация
 
Регистрация: 31.01.2016
Сообщений: 84
Сказал спасибо: 32
Сказали Спасибо 25 раз(а) в 16 сообщении(ях)
serg5768 на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

Сообщение от mtit Посмотреть сообщение
Блин, а погуглить?
К155ИД4 - трёхвходовый. Каскадируем два корпуса - получаем 6-ти входовой. Всё! на плате больше ни одной детальки не будет. Правда 9 выходов - будут инверсными.
Даже можно не гуглить, номенклатуру 155 серии могу сам спросонья рассказать...
Не горю желанием обрастать корпусами, эти решения уже есть в нескольких вариантах, пытаюсь (и с вашей помощью) найти другой путь...
serg5768 вне форума   Ответить с цитированием
Непрочитано 31.01.2016, 22:04   #13
serg5768
Временная регистрация
 
Регистрация: 31.01.2016
Сообщений: 84
Сказал спасибо: 32
Сказали Спасибо 25 раз(а) в 16 сообщении(ях)
serg5768 на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

Сообщение от jump Посмотреть сообщение
serg5768,
нихрена не понял из сообщения #1, но почему не использовать МК? у МК есть прерывание по изменению состояния выводов, считываем их и суммируем с базой таблицы, далее:
- для младших пиков есть команда с возвратом из прерывания с кодом;
- для авр просто считываем.
все адреса таблицы, отличные от данных, возвращают 0 или FF, можно что-то другое
Весь "бутерброд" и так будет вертеться на ATMega16.
Но я в них еще не гуру...
Если бы переключатель был один, то вопросов бы не возникло, но их - три и они независимы друг от друга...
Поэтому пошел аппаратным путем.
Если Поможете примером для BASCOM - буду о-о-чень благодарен...
serg5768 вне форума   Ответить с цитированием
Непрочитано 31.01.2016, 22:16   #14
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

Собирайте на циклоне! А что, гулять так гулять!
Задачу надо ставить корректно. А 155ая логика в 21ом веке это никуда не годится.
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 31.01.2016, 22:29   #15
serg5768
Временная регистрация
 
Регистрация: 31.01.2016
Сообщений: 84
Сказал спасибо: 32
Сказали Спасибо 25 раз(а) в 16 сообщении(ях)
serg5768 на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

Сообщение от Easyrider83 Посмотреть сообщение
Собирайте на циклоне! А что, гулять так гулять! Задачу надо ставить корректно.
Надо было весь проект разложить ?
Я задал, ИМХО, вполне корректный вопрос по участку схемы...
Сообщение от Easyrider83 Посмотреть сообщение
А 155ая логика в 21ом веке это никуда не годится.
Кое-где - еще как !
Кувалды и топоры в 21 веке никто, что-то не выбросил...
serg5768 вне форума   Ответить с цитированием
Непрочитано 31.01.2016, 23:03   #16
Alex9797
Почётный гражданин KAZUS.RUN
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,548
Сказал спасибо: 5,035
Сказали Спасибо 10,606 раз(а) в 3,594 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

Сообщение от serg5768 Посмотреть сообщение
Логика работы (положение - состояние кнопок):
1 - 00001
2 - 00011
3 - 00010
4 - 00110
5 - 00100
6 - 01100
7 - 01000
8 - 11000
9 - 10000
Как видим - двоичная последовательность не соблюдается.
Это разновидность кода Грея. Он хорош тем, что при последовательной смене состояния изменения происходят только в одном разряде. В отличие от обычной двоичной последовательности, в которой одновременно может происходить смена состояний в нескольких разрядах. В процессе переключения двоичной последовательности возникают ложные состояния, что в некоторых случаях недопустимо.

Как этот код Грея преобразовать в двоичный? Тут уже предложили почти все возможные варианты. Самый минимальный объем займет, конечно же, вариант с процессором. Если место не лимитировано, а с процессорами отношения не сложились, я бы рекомендовал комбинированный вариант - пять инверторов на КМОП, плюс обычный дешифратор на диодно-резисторной логике, на выходе которого еще четыре инвертора. Места займет ненамного больше, чем процессор, зато все на виду, и все поддается осмыслению.
Alex9797 вне форума   Ответить с цитированием
Непрочитано 31.01.2016, 23:12   #17
serg5768
Временная регистрация
 
Регистрация: 31.01.2016
Сообщений: 84
Сказал спасибо: 32
Сказали Спасибо 25 раз(а) в 16 сообщении(ях)
serg5768 на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

Сообщение от Alex9797 Посмотреть сообщение
Как этот код Грея преобразовать в двоичный? Тут уже предложили почти все возможные варианты. Самый минимальный объем займет, конечно же, вариант с процессором. Если место не лимитировано, а с процессорами отношения не сложились, я бы рекомендовал комбинированный вариант - пять инверторов на КМОП, плюс обычный дешифратор на диодно-резисторной логике, на выходе которого еще четыре инвертора. Места займет ненамного больше, чем процессор, зато все на виду, и все поддается осмыслению.
Я уже сказал, что в конечном итоге над полученными данными голову ломать будет МК...

Наклюнулась сейчас одна мыслишка...
Если срастется - поделюсь...
serg5768 вне форума   Ответить с цитированием
Непрочитано 01.02.2016, 00:09   #18
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

Сообщение от serg5768 Посмотреть сообщение
Поможете примером для BASCOM
уже нет, ушел еще в 2006
в памяти формируем таблицу перекодировки на 32байта
алгоритм таков (схематично, в лоб):
- ноги порта переводим на срабатывание по изменению состояния;
- в прерывании от порта читаем его, прибавляем адрес базы таблицы, читаем, устанавливаем флаг, уходим;
в основном цикле по флагу обрабатываем данные
можно все три переключателя обрабатывать на одних и тех же входах, но за это заплатить придется тремя выводами
jump вне форума   Ответить с цитированием
Непрочитано 01.02.2016, 00:11   #19
mtit
Почётный гражданин KAZUS.RUN
 
Аватар для mtit
 
Регистрация: 21.03.2007
Адрес: М.(осква)
Сообщений: 4,398
Сказал спасибо: 2,192
Сказали Спасибо 1,780 раз(а) в 1,012 сообщении(ях)
mtit на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

https://ru.wikipedia.org/wiki/%D0%9A...80%D0%B5%D1%8F
Цитата:
function GrayToBin(b: integer): integer;
var g: integer;
begin
g := 0;
while b › 0 do begin
g := g xor b;
b := b shr 1;
end;
GrayToBin := g;
end;
Хотя по мне структура
Цитата:
case X of
00001: Y:=1
00011: Y:=2
00010: Y:=3
00110: Y:=4
00100: Y:=5
01100: Y:=6
01000: Y:=7
11000: Y:=8
10000: Y:=9
end;
пишется за 5 минут и проблем не представляет.
__________________
+ 7 903 641 87 25// 1. Иногда отвечаю "по памяти" 2. Часто заблуждаюсь >> Критикуйте, не обижусь.
mtit вне форума   Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо mtit за это сообщение:
Alex9797 (01.02.2016), nml (01.02.2016)
Непрочитано 01.02.2016, 00:34   #20
Alex9797
Почётный гражданин KAZUS.RUN
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,548
Сказал спасибо: 5,035
Сказали Спасибо 10,606 раз(а) в 3,594 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

Сообщение от mtit Посмотреть сообщение
Хотя по мне структура
Цитата:
case X of
00001: Y:=1
00011: Y:=2
00010: Y:=3
00110: Y:=4
00100: Y:=5
01100: Y:=6
01000: Y:=7
11000: Y:=8
10000: Y:=9
end;
пишется за 5 минут и проблем не представляет.
Спасибо, как раз собрался предложить то же самое! Выручили!
Добавлю только, что этот переключатель - штука очень медленная, с точки зрения даже самого тормознутого проца. Поэтому не вижу смысла напрягаться с отслеживанием момента изменения кода, а потом еще прерывание обрабатывать. Торопиться некуда. Можно просто запускать эту процедуру обработки кода переключателя тогда, когда реально возникнет интерес к его состоянию.
Alex9797 вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IAR код виснет на M4 stm8 ARM 9 13.11.2015 10:48
Код для управления 7-сегментными индикаторами Dimitrij Микроконтроллеры, АЦП, память и т.д 3 29.08.2011 19:39
MPLAB IDE и HI-TECH 18 s-4ern Микроконтроллеры, АЦП, память и т.д 16 17.09.2009 14:06
преобразование позиции бита в код Beduin Микроконтроллеры, АЦП, память и т.д 26 29.06.2007 19:05


Часовой пояс GMT +4, время: 01:56.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.