Дoбыл на рынке лет пять тому назад этот микроконтроллер ради любопытства. Но из-за TSSOP-исполнения уж тяжело к нему подобраться и спичечную коробочку с ним убрал подальше, чтобы не потерять…
И вот на прошлой неделе установил себе Proteus 8… Естественно, многие ключевые элементы в нём отсутствуют, либо не имеют модели симуляции. Например, тот же Z80 графически есть, но логически не симулируется… А элемент 12И-НЕ (К531ЛА19/74S134) вовсе не так работает, выдавая на выходе не инверсный, а прямой результат… И разрешающий сигнал - логическая единица! Конечно, я скачал архивы с ZX-Spectrum и Радио-86РК, но элемент отображения композитного видео не работает и даёт предупреждение «Batch mode model creation function(s) not found in display.DLL. [TVOUT#008A]». И только «boblite» имеет «RGBIOUT» - работающий цветной дисплей… А так как микросхема телевизионного сепаратора LM1881 так же отсутствует в списке элементов симуляции, я взял сигналы развёртки, идущие к «RGBIOUT», чтобы подтянуть их к ATtiny 85. И тут я споткнулся с прерываниями… Не срабатывают они по сигналу строчной развёртки через вывод 3(PCINT4) как бы я ни старался!
Открыл проект попроще и решил в нём кнопками прерывания отладить… Однако и в нём они не вырабатываются! Вот что тут не так?
И ещё вопрос… СпойлерК данному ATtiny можно подключить 12 светодиодов (если очень захотеть). Однако, я попытался сделать обратное - подключить 12 кнопок… (Помните тему?) Но почему-то регистры R22 и R23, при нажатии двух кнопок несут не два, а три бита. Получается, будто по двум проводам нельзя опросить две кнопки, разделённые диодами?
Алгоритм:
Настраиваем выводы 5,6,7 на вывод и 2,3 на ввод
Перемещаем логический «0» от вывода 5 к выводу 7 и считываем три раза выводы 2,3 в регистры R20,R21,R22
Настраиваем выводы 5,6,7 на ввод и 2,3 на вывод
Перемещаем логический «0» от вывода 2 к выводу 3 и считываем два раза выводы 5,6,7 в регистры R23,R24
Маскируем, сдвигаем и упаковываем все 12 битов в два регистра R22,R23
Оказывается в коде я допустил опечатку: «OR R22,R20» следует исправить на «OR R22,R21»…
А с PCINT4 по PB4 так и не разобрался и поступил крайне тупо - по PCINT5/RESET сбрасываю процессор… Оказывается, по RESET не все регистры обнуляются и можно профиксировать по значениям регистров программно, в каком месте произошёл СБРОС. Конечно, это крайне тупой способ, но он 100% работает!
Но я код полностью переписал… Схему переработал и сделал её красивее… Сделал 10 кнопок и 2 индикатора через оптронную развязку для выдачи информации. Если ко сбросу подтянуть отдельную кнопку или приёмник, то можно получать информацию…
Или я ошибаюсь?
Вложения:
Комментарий к файлу: Опрос кнопок и мигание индикаторами 10-buttons.txt [2.85 KiB]
Скачиваний: 133
разве? а ADC на порт кнопок заюзать ка во всех причичных телеках?
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Рисуете квадрат ("Что вы такой неровный квадрат нарисовали? Вы что дальтоник?")). 4 угла нужно подключить к МК. Каждый угол соединяется с другими через диод с кнопкой. Встречно-параллельно. Т.о., в каждом соединении будет по 2 кнопки. Итого 12, ага? Опрос, думаю, понятен. Активизируете нулём один угол и проверяете 3 остальные. И так все 4 угла. Элементарно, Ватсон.)
болно муторно это и клава нестандартна я видел девайсы где дляэкономи ног в индикаторе с ДИ часть сегментоф фключена встречно осталным... вот геморто с мматрицей вывода ....без бочки пива не понять...
Добавлено after 2 minutes 17 seconds: чем 1 ногий вариант с ADC не устроил?
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Ага, конечно. Хоть бы 8 повесили. На один канал имеется ввиду. А без АЦП вообще никаких проблем. Хоть в индикации, хоть где. Разбираешься только один раз и потом напрочь обо всём забываешь.)
А как там с разрешением по аналоговому входу? Его хватит, чтобы повесить на один провод, к примеру, 64 кнопки?
Решение для мазохистов. Дело не только в разрешении - резисторы делителя д.быть с точностью доли процента, переходное сопротивление кнопки = 0, а плата - очень большое сопротивление, не нарушаемое влагой и неотмытым флюсом. Лучше всего на фторопласте
вы о чем каке доли процента вы же не измеритель собирает? кнопки да есали закиснут могут глючить но они и так глючат....даже по 1 ена порту вполне себе рабоче рещегни на десяток или чуть боле кноепок на 64 уже конечно много обвязки там матрица рулит...
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Решение для мазохистов. Дело не только в разрешении - резисторы делителя д.быть с точностью доли процента, переходное сопротивление кнопки = 0, а плата - очень большое сопротивление, не нарушаемое влагой и неотмытым флюсом. Лучше всего на фторопласте
Решение с кнопками на АЦП часто используется в устройствах, выпускаемых промышленно. Наверное, если реализовывать таким образом клавиатуру на пару сотен кнопок, понадобятся резисторы с точностью доли процента, и т.д. Пара десятков кнопок ("цифровая" клавиатура плюс десяток различных управляющих клавиш) реализуется легко.
Stan47 писал(а):
Господин из Спиртогонска... Будьте так любезны и переведите то, что Вы написали
а оно Вам надо? я так понял, что musor что-то вроде маскота этого форума. Фольклорный элемент
А Вы бы сначала подключили бы с 10-к кнопок к одному каналу, добились бы результата, глядишь и почувствовали бы тему. А тогда и дальше можно было бы говорить о чём то, не?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения