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

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

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

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

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

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


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

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

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

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

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

Сообщение от Easyrider83 Посмотреть сообщение
Собирайте на циклоне! А что, гулять так гулять! Задачу надо ставить корректно.
Надо было весь проект разложить ?
Я задал, ИМХО, вполне корректный вопрос по участку схемы...
Сообщение от Easyrider83 Посмотреть сообщение
А 155ая логика в 21ом веке это никуда не годится.
Кое-где - еще как !
Кувалды и топоры в 21 веке никто, что-то не выбросил...
serg5768 вне форума  
Непрочитано 31.01.2016, 23:03  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
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  
serg5768
Временная регистрация
 
Регистрация: 31.01.2016
Сообщений: 84
Сказал спасибо: 32
Сказали Спасибо 25 раз(а) в 16 сообщении(ях)
serg5768 на пути к лучшему
По умолчанию Re: Непоследовательный двоичный код

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

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

Сообщение от serg5768 Посмотреть сообщение
Поможете примером для BASCOM
уже нет, ушел еще в 2006
в памяти формируем таблицу перекодировки на 32байта
алгоритм таков (схематично, в лоб):
- ноги порта переводим на срабатывание по изменению состояния;
- в прерывании от порта читаем его, прибавляем адрес базы таблицы, читаем, устанавливаем флаг, уходим;
в основном цикле по флагу обрабатываем данные
можно все три переключателя обрабатывать на одних и тех же входах, но за это заплатить придется тремя выводами
jump вне форума  
Непрочитано 01.02.2016, 00:11  
mtit
Почётный гражданин KAZUS.RU
 
Аватар для mtit
 
Регистрация: 21.03.2007
Адрес: М.(осква)
Сообщений: 4,288
Сказал спасибо: 2,125
Сказали Спасибо 1,725 раз(а) в 979 сообщении(ях)
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  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
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, время: 05:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot