Доброго дня уважаемые форумчане! В очередной раз потребовалась помощь с написанием программы (если точнее - готовая программа).
Задача - считывать текущее время из DS3231 с помощью PIC16F628 и выводить на индикатор методом динамической индикации. Да, всё верно - банальные часы. Более никакого функционала не нужно, (даже установка/коррекция текущего времени не нужна) за исключением одного единственного - переключение в режим отображения текущих минут и секунд, т.е. из органов управления единственная кнопка с единственной функцией переключения режима отображения час:мин / мин:сек. Индикация динамическая четырёхразрядная семисегментная, частота индикации 128Гц., скважность 32/7 (как у К176ИЕ18 ). Ну вот пожалуй и всё.
Примерно желаемая схема:
Спойлер
Если найдутся желающие помочь - заранее благодарен.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Естественно нужны. То что по мотивам моей схемы и так понятно. А вот по одной лишь картинке сложно судить то ли мне нужно, или не то. Пару слов как работает программа не помешало бы.
_________________ Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
Да вот... Вариант предложил хороший, всё в принципе устраивает, но вот с индикацией возникла проблема (не получается сделать с желаемыми частотой и скважностью).
_________________ Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
Добавлено: Пн фев 15, 2021 08:58:59
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Чтобы не было мерцаний, достаточно частоты выше 25 Гц. При 50-ти их вообще не заметно. Ну 100 можно сделать, картика будет стоять как "вкопанная". А от скважности будет зависеть яркость, но никак не мерцание.
Обычно делается кратно двойке - удобно для загрузки делителей. Для 4-позиционного светодиодного дисплея достаточно 0,016 (0,004 на каждую позицию). Это 62,5 Гц. Яркость/стабильность вполне нормальная. Другое дело когда внешнее искусственное освещение - лампы накаливания, неон или светики... Там теоретически может иметь место наложение "мерцаний" от светильнка и собственно индикатора.
Дополнительно задача сделать обращение к часикам и/или датчику таким образом, чтобы не приостанавливать индикацию. Чаще всего именно эта "приостановка" и бывает источником "неприятных ощущений". I2C в принципе допускает приостановку вплоть до полного останова - посему индикатор ставим на прерывания фоном (высший приоритет), а основная программа занимается часейками. Как вариант - для обмена выделяется "теневой кадр" - развертка не на 4, а на 5 позиций и обмен втискиваем в ту 5-ю позицию.
Разве что исходная задачка с "неизвестным фактором" - подгонка под имеющийся нестандартный индикатор. Тогда возможно параметры развертки будут иметь весьма большое значение. Но схемка индикатора не представлена и данное условие не оговорено. Как собственно и необходимость внешнего RTC без настроек параметров. Для PICовых вполне реально и внутренние часики на Т1 устроить с собственным внешним кварцем...
Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
Добавлено: Пн фев 15, 2021 10:32:12
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Давайте немного прикинем по хотелкам ТСа. 128 Гц на индикатор. Скважность 7/32. 4 индикатора. Получаем тактовую для динамической индикации = 128*4*32 = 32768 Гц. Это получается частота, с которой будет происходить обработка динамической индикации. Учитывая, что проц будет работать на внутреннем генераторе с частотой 4 Мгц( это 1 us на такт), имеем всего 30 тактов, за которые мы должны уложиться в обработчике прерываний. Это очень мало для обслуживания такой задачи этим процом. Будем практически постоянно висеть в прерывании. Мало того, ровно 32768 мы получить не сможем. Это нужно ставить кварц какой-нибудь специфической частоты
PS: По-этому и вопрос - для чего такая бешеная частота и своеобразная скважность ?
Если не умножать и тактировать всю индикацию с частотой 128 Гц, то на каждый индикатор получим 32 Гц Для того, чтобы была частота 128Гц, переключать индикаторы нужно с частотой, выше в "кол-во индикаторов" раз. В данном случае = 512 Гц.
Добавлено after 8 minutes 7 seconds: Да, я немного обсчитался Получается 16 Кгц, а не 32
Всё равно неверно. Делим период индикации на 32. Из них 7 тактов на один разряд, один такт защитный, потом 7 тактов второй разряд плюс один защитный и т.д. И того получается 32 такта на все четыре разряда с защитными интервалами (отсюда и своеобразная скважность 32/7). При частоте индикации 128Гц. получаем тактовую 128х32 = 4096Гц. Собственно упомянутая К176ИЕ18 именно так и делает, делит 4096Гц. на четыре сдвинутых на 90° тактовых сигнала по 128Гц. скважностью 32/7.
_________________ Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения