Собственно у АВРок нет истинного приоритетного контроллера прерываний (так как допустим у всем известной mcs51 и в некоторых иных семействах). Т.е. пока исполняется модуль прерывания все кроме оного приостановлено
Посмотрим реально на сколько остановлено допустим каждую 1 mS прерываемся на 5.25uS для подсветки нового знакоместа чему это может реально помешать - ну чисто теоретически прерываниям (не вложенным) по приему символа от USART. Тут поможет микроконтроллер с DMA https://www.microchip.com/design-center ... pic18f-k42
источник прерывания вызывает собственно процедуру обработчика прерывания которая завершается условным выходом не в основную программу, а на указанный во время выполнения прерывания прикладной "хвост" (при этом разрешая все иные обработчики прерываний), который в свою очередь возвращает управление в точку, предшествующую вызову по источнику прерывания
примерно во всех материалах по системному (и любому) программированию на С написано большими буквами НЕ ДЕЛАТЬ ТАК.
Написано "теоретически" - например если пауза между приемом байтов меньше 5 микросекунд. Практически tiny2313 может на 16MHz тактовой 912600 bps правда с ошибкой 9.6% (для связки нескольких авр возможно пойдет) - если не ошибаюсь, 1 байт будет передаваться около 10 микросекунд.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
НЕ УБЕДИЛИ. А если не UART за основу берется, а с десяток таймеров навешанных на аппаратный блок (таким же способом, что и индикатор). Да еще и разветвленная менюшка.
Впрочем все равно надоть чего соорудить в железке. А у мня интерес к такому делу все меньше... Не к добру...
Вроде... работает... Но как-то не комфортно... Паразитная «ПОДСВЕТКА» в тех местах, где сегменты неактивны. Особо действует на нерву/становится заметной ежли активны (высвечены) не все позиции на нашем дисплейчике.
ЗАСАДКА... Дело в том, что смена комбинации сегменты/позиция происходит еще в старой позиции дисплея. А тут минимум несколько команд. Добавим еще и интервал времени на распространение сигнала как в сегментных так и в позиционных ключах. Оный надо высчитывать в каждом конкретном случае по даташитам применяемых внешних элементов. Да длину шлейфов... МНДЯаа... Определяем таковой интервад по максимальной задержке распространения в самых медленных из имеющегося в схеме — оптронах типа 4N33 как 100 микросекунд... Добавим на всяк случай еще микросекунд с 50... итогом «темная область» 150 микросекунд от сигнала «все выключено» или по сегментам или по позициям перед последующей сменой активных данных является ОБЯЗАТЕЛЬНЫМ дополнением для любого светодиодного индикатора на основе динамической развертки. Вот только … Вставлять такой цикл задержки в само прерывание... Это уж слишком затратное по ресурсам МК дело. Хотя... В такой ситуации для нашего предыдущего алгоритма добавим
Абздец.Снова горе от ума? Какие еще микросекундные задержки на? Был тут один так же пел о "инерционности" ключей. Засветка неиспользуемых сегментов лечится гашением всех сегментов на время смены разряда. Ознакомься для расширения кругозора... http://www.kaligraf.narod.ru/nedodellki.html
страничка 2 - "максимальное время отключения" 100 микросекунд стандартно 45 микросекунд. У 4N35 будет поменьше - максимум 10 микросекунд, стандарт 5,7 микросекунды. А ведь там не один такой может стоять, а еще и с дополнительным ключом да метром-двумя проволоки межсоединений. Посему и делается страховка от "стечения обстоятельств". Для дисплея на одной платке это ессно не столь заметно. Я ж исхожу из "максимальной конфигурации" - ULN2803 - LM317 как стабилизатор тока сегмента - 4N33 + плюс дополнительный позиционный ключ (в данном случае "верхний"). Да сегменты без ограничения размеров.
И спасибо за "пинок"! То я уж совсем "скис" в последнее время...
Вышла пара обновлений по расширениям от MCdude и новая версия arduinoIDE 1.8.9.... Поставил сначала обновляшки плат, а затем и саму IDEшку... Ранее встречавшиеся на компиляции "сторонних плат" матюки частично устранены. Ням-Ням!
Дождики... мокро, прохладно... Можно полежать, стары проекты облизать...
Подправил немножко задумку показометра/регулятора на адуринке... Правда с учетом "местных условий" и прикладной полезности поставил в проект/макет ЖКИ дисплейчик на NJU6432 - и сегменты крупные и знакомест в избытке (10 позиций) и к питанию не привередлив - от 5 до 2,7 вольт работает и спецфишка у NJU6432 - можно дрыголапом "мигание" обеспечить... За базу взят вариант терморегулятора с индикацией (примерно вот такого "в чистом виде"): http://img.radiokot.ru/files/20529/1urjzuxxo0.GIF и рабочего макета для всякопроб
Собственно размышления... Добавлены абсолютные блокировки при КЗ/обрыве шлейфа датчика и ошибке CRC. Надо допилить еще защиту от однократного/редковстречающегося случая ошибки CRC с самовосстановлением Да кнопуси с настройками уставки, под которые структура прожки подредактирована... Попозже под настроение...
Замечание собственно по использованию библиотеки OneWire... CRC там считается ТАБЛИЧНЫМ методом. Попытка загнать в штатный программный мне не удалась (лазить по библиотекам навыков маловато). Посему соорудил корявенький самолапный генератор CRC7/CRC8 для "универсального" применения и по уже неоднократно проверенному алгоритму, что ранее под ассемблером использовал (а оный где-то в инете в дремуче-древни времена стыбрил). Как результат - под 200 байт ПЗУ меньше использоваться стало. Вот собственно архивчик с проектом
(название не поменял, но и файлы изменены и в графике шаблоны добавлены)
Собственно теперь добавить кнопы и работу с ЕЕПРОМкой по вводу/изменению уставки... И... может получится чего подобного 25-летней давности блочку на АТ89С2051...
Собственно подобное устройство на ПИКе 629/675 или 628 (или аттиньке 2313) гораздо эффективнее соорудить можно... АТ89С2051 жреть много - посему сегодня на последнем месте. Однако... При любой самоделке надо и платку делать и пайку компонентов. После появления DIPформ-фактора ардуино про-мини таковой вопрос как-то сместился в сторону данного компонента. Тем более при наличии и прототипа ардуино-нано и при симуляторе UnoArduSim... То, что "не кошерно" с точки зрения ассемблера и/или полного управления ресурсами под "чистым СИ" необходимо в данном случае отбросить в сторону (хотя такое и весьма напрягает поначалу). Просто относится к той адурине как к новому компоненту с собственным компилятором (вариантом системы команд "черного ящика" в DIP упаковке) и использовать имеющиеся плюсики там, где подобное экономически оправдано. При том, что и доброе старо-изученное забывать НЕЛЬЗЯ, а при возможности использовать в комплексе с адуриноподобными.
Как уже не раз убеждаюсь, что "полный фарш" защит (да еще страшнее функционал ввода/вывода уставок) занимают по объёму и вредности гораздо больше места, нежли само устройство...
Воть и в этот раз - простейший показометр с функцией ввода уставки захотелось соорудить... http://img.radiokot.ru/files/20529/1v33qjk0xh.GIF МНДЯАА... Ладно хоть до заготовки кноп превозмогая ЛЕНЬ удалось добраться...
Пока только тест-вариант: активация режима теста кнопой sn_4 Далее при нажатии любой из 1-4 высвечиваются их номера в крайней правой позиции дисплея. При нажатии и удержании кнопы 5 будет цифирь 5, а как только отпустить - возврат в режим индикации. Задумано и как тренировка по теме "указатели в Си" и "на вырост аппетита" (в ассемблере банальный переход по динамически изменяемым векторам).
Весьма неплохая ссыль... Жаль в оффлайн варианте/*.pdf нету.
Да и те азы без учебной отработки штука мертвая - делаем садомазохизм и на оном тренируемся в понимании/восприятии каждого приема. Для начала аналогии уже проработанному под ассемблером и отличия в подходах к различиям в алгоритмах надо разобрать.
В вышеприведенном проектике тренировка по разбору аналогии старого варианта кнопоменюшки с таблицей указателей. Не факт, что будет окончательно в том же виде - тренировка и есть тренировка.
И прекращай ворчать, начинай изучать одновременно практикуясь..
Цитата:
В вышеприведенном проектике тренировка по разбору аналогии старого варианта кнопоменюшки с таблицей указателей. Не факт, что будет окончательно в том же виде - тренировка и есть тренировка.
учебна-прикладушкина проекта... на основе все той же схемки http://img.radiokot.ru/files/20529/1v33qjk0xh.GIF Однако сам СКОТч весьма заметно подправлен. Устранены многие ошибки с индикацией, добавлен шаблон многофункциональной кноподавы, (явно излишне замудренный для данной игрушки) завязанной на мнеюшку с курсором в виде сегмента H, запись параметров в ЕЕПРОМ с контролем корректности вводимого значения...ну и всякой иной бяки...
Режимы индикатор -55 - +125 регулятор (охлаждающий на основе компрессора) регулятор нагревающий задаваемое значение логического уровня ключа управления дискрет шага уставки регулировки 1 градус цельсия дискрет индикации 1 градус цельсия.
Вобщем - тренировка... НО... хоть для какой-нить пользы сгодится... Собственно оформление УЖАСНОЕ.... Кому чего захочется - можно изменить. В том числе и под индикатор на MAX7219 - правда там позиций поменьше и жреть он поболее.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения