Обсуждаем контроллеры компании Atmel.
Ср апр 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 раз.
Ср апр 07, 2021 12:15:33
Спасибо,проверю.
Ср апр 07, 2021 13:45:35
то, что весь экран на порте РС - это не удобно в программе - нужно передаваемый байт двигать туда-сюда для передачи старшей и младшей тетрады.
я у себя сажаю данные на экран на порты PD4-PD7. это получается, что старшую тетраду можно передавать сразу, а для передачи младшей тетрады применить всего одну команду swap.
и еще одно неудобство применения в качестве выходов выводов порта РС - обязательно нужно подавать питание на вывод AVCC.
в моем же случае подавать питание на вывод AVCC вообще не нужно, что упрощает монтаж.
Ср апр 07, 2021 14:12:38
Библиотека для ЖКИ написана для универсального использования выводов МК. То есть, нет жёсткой привязки какого либо порта… да, универсальные алгоритмы с точки зрения минимизации кода считаются более массивными, но зато позволяют быстро манипулировать выводами при необходимости во время создания ПП. Если у кого возникнут потребности для изменения портов подключения ЖКИ или кнопок, то это легко можно будет организовать.
Ср апр 07, 2021 14:37:49
...swap...
Пишем на С, подключаем библиотеки и забываем про
Starichok51 писал(а):...не удобно...
Ср апр 07, 2021 22:23:01
кому что нравится, дело вкуса ....
лично я пишу на ассемблере и вообще никакими библиотеками не пользуюсь.
для меня написать вывод на 1602 - примерно, как два пальца ...
и изменить порты, при необходимости, - точно также.
хотя я заново для каждого проекта не пишу вывод на 1602, а просто копирую из ранее сделанных проектов.
у меня на ассемблере разработана собственная "плавающая точка", которая гораздо быстрее работает Сишной "float".
Ср апр 07, 2021 22:37:22
У меня готовое устройство , простой - работа от 0 сек до 99 часов, 99 минут, 99 секунд .. до 99 циклов . Всё проверено , не раз . Правда на микрочипе (16ф684) . А ещё и для лсд на Кириллице.
Чт апр 08, 2021 10:32:04
у меня на ассемблере разработана собственная "плавающая точка", которая гораздо быстрее работает Сишной "float".
Таковы мы, олдскульные
То же самое, причём для двух платформ: AVR и ST62XX. + функции: тригонометрия, корень, степень.
Спойлер
Себя не похвалишь - сидишь как оплёванный ( © туристская мудрость )
Чт апр 08, 2021 10:39:03
Рационально и разумно все, чем в конкретное время владеешь и можешь с максимальной пользой для конкретного случая применить.
Чт апр 08, 2021 21:43:38
Jack_A писал(а):+ функции: тригонометрия, корень, степень.
+ функции я не делал - пока мне без надобности.
ограничился 4-мя арифметическими операциями - сложение, вычитание, умножение и деление.
Чт апр 08, 2021 23:40:09
у меня на ассемблере разработана собственная "плавающая точка", которая гораздо быстрее работает Сишной "float".
А Кто сказал что в СИ обязательно пользоваться float ?
Пт апр 09, 2021 10:16:14
да оно и в ассемблере далеко не всегда надо.
в подавляющем числе случаев достаточно работы с целыми числами. а положение точки (запятой) для каждого конкретного параметра фиксированное.
у меня до сих пор все проекты в целых двухбайтовых числах, еще ни разу не пользовался плавающей точкой.
Пт апр 09, 2021 23:46:41
Если допустим нужно приращение очень малого параметра к счётчику ( к примеру замер емкости набранной за 0,1 секунды и прибавление к общему счётчику) можно считать в переменную типа INT32 с умножением на 10 000 000 . Если непонятно то объясню на примере.
Вс апр 11, 2021 12:14:19
чтобы не потерять мелкую добавку к суммирующему счетчику делается совсем иначе.
для накопительного счетчика при очень маленькой прибавке сохраняется остаток от деления.
потом, при следующем делении, этот остаток сначала прибавляется, а уже потом делается деление и опять сохраняется новый остаток.
например.
расчет емкости ведем каждую секунду, поэтому для получения амперчасов проходящий ток нужно делить на 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?
ты что, собираешься считать емкость в микроамперчасах или даже в наноамперчасах? кому такое нужно?
Вс апр 11, 2021 21:53:55
Ток у нас не одинаковый ! Зарядные устройства телефонов ( ГАДжеТОВ) не держат ток на одном уровне !!!
Добавлено after 21 minute 37 seconds:То есть ток заряда регулируют не зарядные устройства, а контроллеры в устройствах конечно - но это не важно кто . Наша задача считать ёмкость.
Добавлено after 1 hour 31 minute 48 seconds: Как быть? Задача : просто подсчитать ёмкость за 0,1 секунды ! От АЦП ! То есть ТОК - не постоянный . Ток считанный и равный миллиамперам !
Пн апр 12, 2021 07:58:47
я очень подробно расписал, как считать емкость, что тебе еще осталось не понятно?
а по поводу 0,1 секунды я тебе задал вопрос:
ты что, собираешься считать емкость в микроамперчасах или даже в наноамперчасах?
но ты на него не ответил.
Пн апр 12, 2021 20:48:37
Ты конечно подробно расписал, но немного не адекватно , может хотел запутать ? И у тебя это получилось ! Твоя фраза "делим 100 на 3600 - целой части нет, и 100 попадает в остаток." Когда делим 100 на 3600 (в целочисленном делении) в остаток попадает ноль. Ну я разобрался с алгоритмом . Наверное он имеет место быть .
Пн апр 12, 2021 20:54:34
Когда делим 100 на 3600 (в целочисленном делении) целая часть равна нулю, а в остаток попадает 100.
Пн апр 12, 2021 21:16:17
Это по какому закону ньютона ? Там получается ( по математике , может какой то другой) =0,027777
Добавлено after 2 minutes 57 seconds:
Может ты слишком умный , а я слишком тупой , и потому Мы не можем понять друг друга ?
Пн апр 12, 2021 21:56:44
Который раз убеждаюсь, что интернет выдуман очень умными людьми, но для обезьян. Поэтому в нём есть даже калькулятор остаток от деления (йопт..)
https://ru.onlinemschool.com/math/assis ... ry/modulo/Если кто-то что-то подзабыл, то велком.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.