Заголовок сообщения: Циклический таймер на ATtmega8A.
Добавлено: Ср апр 07, 2021 08:13:36
Алгоритм которого написан по просьбе Александр_73.
Александр_73 писал(а):
По возможности програмируем время покоя, время работы и общее время программы.Общее время программы до 24часов. ПРИМЕР 1:включили,задаем время покоя 10мин,время работы 1сек,общее время 6часов. ПРИМЕР2:включили ,время покоя 3мин,время работы 30сек,общее время 1час
В таймере можно выбирать период, продолжительность времени которого логической единицы (Hi) от 1 сек. до 59 мин и время логического нуля (Lo) также от 1 сек. до 59 мин. А также можно выбирать количество циклов (общее время работы до 24 часов.). Для понимания работы в виде примера: допустим время лог 1 (Hi) выставили 5 секунд, а время лог 0 (Lo) выставили 3 минуты. Таким образом, общее время периода составило - 3 мин, 5 сек. Если нам нужно общее время работы около 1 часа, то в данном примере это получится 19 периодов, то есть время общей работы точнее составит 58 минут 35 секунд.
Устройство выполнено на МК ATtmega8A. МК тактируется на частоте 4 МГц. Ставить или не ставить кварцевый резонатор зависит от желания пользователя. В виде дисплея используется LCD WH1602 или подобный на HD44780 (шрифт используется латиница). Схема:
Прошивка:
Вложение:
Timer.hex
Фьюзы для тактирования от внутреннего генератора:
Вложение:
F1.png
Фьюзы для тактирования от кварца:
Вложение:
F2.png
Краткое описание управления.
Вложение:
Описание.pdf
ЗЫ. Прошивка требует тщательного тестирования. Тестирование мною производилось поверхностно. Спойлер
Последний раз редактировалось Самсусамыч Ср апр 07, 2021 14:22:46, всего редактировалось 1 раз.
то, что весь экран на порте РС - это не удобно в программе - нужно передаваемый байт двигать туда-сюда для передачи старшей и младшей тетрады. я у себя сажаю данные на экран на порты PD4-PD7. это получается, что старшую тетраду можно передавать сразу, а для передачи младшей тетрады применить всего одну команду swap. и еще одно неудобство применения в качестве выходов выводов порта РС - обязательно нужно подавать питание на вывод AVCC. в моем же случае подавать питание на вывод AVCC вообще не нужно, что упрощает монтаж.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Заголовок сообщения: Re: Циклический таймер на ATtmega8A.
Добавлено: Ср апр 07, 2021 14:12:38
Библиотека для ЖКИ написана для универсального использования выводов МК. То есть, нет жёсткой привязки какого либо порта… да, универсальные алгоритмы с точки зрения минимизации кода считаются более массивными, но зато позволяют быстро манипулировать выводами при необходимости во время создания ПП. Если у кого возникнут потребности для изменения портов подключения ЖКИ или кнопок, то это легко можно будет организовать.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
кому что нравится, дело вкуса .... лично я пишу на ассемблере и вообще никакими библиотеками не пользуюсь. для меня написать вывод на 1602 - примерно, как два пальца ... и изменить порты, при необходимости, - точно также. хотя я заново для каждого проекта не пишу вывод на 1602, а просто копирую из ранее сделанных проектов. у меня на ассемблере разработана собственная "плавающая точка", которая гораздо быстрее работает Сишной "float".
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
У меня готовое устройство , простой - работа от 0 сек до 99 часов, 99 минут, 99 секунд .. до 99 циклов . Всё проверено , не раз . Правда на микрочипе (16ф684) . А ещё и для лсд на Кириллице.
_________________ Не спрашивай по ком звонит колокол, он звонит по тебе !
да оно и в ассемблере далеко не всегда надо. в подавляющем числе случаев достаточно работы с целыми числами. а положение точки (запятой) для каждого конкретного параметра фиксированное. у меня до сих пор все проекты в целых двухбайтовых числах, еще ни разу не пользовался плавающей точкой.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Если допустим нужно приращение очень малого параметра к счётчику ( к примеру замер емкости набранной за 0,1 секунды и прибавление к общему счётчику) можно считать в переменную типа INT32 с умножением на 10 000 000 . Если непонятно то объясню на примере.
_________________ Не спрашивай по ком звонит колокол, он звонит по тебе !
чтобы не потерять мелкую добавку к суммирующему счетчику делается совсем иначе. для накопительного счетчика при очень маленькой прибавке сохраняется остаток от деления. потом, при следующем делении, этот остаток сначала прибавляется, а уже потом делается деление и опять сохраняется новый остаток. например. расчет емкости ведем каждую секунду, поэтому для получения амперчасов проходящий ток нужно делить на 3600 секунд. и допустим, что ток у нас измеряется в миллиамперах, поэтому будем считать в миллиамперчасах. пусть ток будет 100 мА. делим 100 на 3600 - целой части нет, и 100 попадает в остаток. через 2 секунды мы к 100 прибавляем остаток 100, и делим 200 на 3600. 200 опять попадает в остаток. через 35 секунд остаток будет равен 3500. через 36 секунд 100 + 3500 делим на 3600 и получаем 1 - 1 мАч. через 3600 секунд (1 час) мы получаем ровно 100 мАч. а зачем тебе такое большое число 10 000 000? ты что, собираешься считать емкость в микроамперчасах или даже в наноамперчасах? кому такое нужно?
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Ток у нас не одинаковый ! Зарядные устройства телефонов ( ГАДжеТОВ) не держат ток на одном уровне !!!
Добавлено after 21 minute 37 seconds: То есть ток заряда регулируют не зарядные устройства, а контроллеры в устройствах конечно - но это не важно кто . Наша задача считать ёмкость.
Добавлено after 1 hour 31 minute 48 seconds: Как быть? Задача : просто подсчитать ёмкость за 0,1 секунды ! От АЦП ! То есть ТОК - не постоянный . Ток считанный и равный миллиамперам !
_________________ Не спрашивай по ком звонит колокол, он звонит по тебе !
я очень подробно расписал, как считать емкость, что тебе еще осталось не понятно? а по поводу 0,1 секунды я тебе задал вопрос: ты что, собираешься считать емкость в микроамперчасах или даже в наноамперчасах? но ты на него не ответил.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Ты конечно подробно расписал, но немного не адекватно , может хотел запутать ? И у тебя это получилось ! Твоя фраза "делим 100 на 3600 - целой части нет, и 100 попадает в остаток." Когда делим 100 на 3600 (в целочисленном делении) в остаток попадает ноль. Ну я разобрался с алгоритмом . Наверное он имеет место быть .
_________________ Не спрашивай по ком звонит колокол, он звонит по тебе !
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения