Д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]
Скачиваний: 142
разве? а 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-к кнопок к одному каналу, добились бы результата, глядишь и почувствовали бы тему. А тогда и дальше можно было бы говорить о чём то, не?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения