Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Нужна помощь в программировании

Вс окт 21, 2018 23:29:54

Спасибо ув Zhuk72 за проделанную работу жду МК на подходе поиграюсь с вашими прошивками

P.S Прочитал данную ветку много чего полезного узнал :shock:

Re: Нужна помощь в программировании

Чт янв 31, 2019 22:08:34

Нашел еще один свежий проект с прошивкой часов на STC15W40x от aFewBits https://github.com/aFewBits/stc-led-clock
Опробовать сейчас не смогу - нет ни одних часов под рукой, все раздарил.
Из описания:
СпойлерClock Features

Time display (12 and 24 hour modes).
Alarm (using the rather loud internal buzzer).
Programmable hourly chime. On/Off selectable.
Date and Day display. On/Off selectable.
Ambient Temperature display. F/C selectable. On/Off selectable.
Display Auto-Dim with programmable limits. The auto-dim can be disabled using the limits.
Temperature calibration
Auto-increment when setting times/alarms/etc. No need to repeatedly press the same key.

The features above are implemented with a multi-level menu with best-as-can-be-managed text prompts using the limited 7 segment displays. This menu helps (IMO) with the "where-the-hell-am-I" in the rather tortured, linear menu of the original software. This does come with a cost, namely flash space so please note that the initial commit of this code requires 4.25k of memory. This should not be an issue for the Banggood clock mentioned since it arrived with an 8k chip, the STC15W408AS. If you want to use this in a similar model that has only 4K of available flash, some features will need to be removed. Since this is a work in progress, a request with at least one feature to delete should get you a branch that will need no more than 4K of flash.

I have found that consolidating the units selection (hour format, date format and temperature) into one group as an US/EU selection rather than three individual pieces works well to get code size under 4k. In hindsight, this might be a better method than keeping them as individual selections going forward. Another option is to remove the display of the day of the week feature which I consider rather useless option.

Google Translate
СпойлерОсобенности часов

Отображение времени (12 и 24 часовой режим).
Тревога (используя довольно громкий внутренний зуммер).
Программируемый почасовой звонок. Вкл / выкл по выбору.
Отображение даты и дня. Вкл / выкл по выбору.
Дисплей температуры окружающей среды. F / C по выбору. Вкл / выкл по выбору.
Дисплей Auto-Dim с программируемыми пределами. Автоматическое затемнение может быть отключено с помощью ограничений.
Калибровка температуры
Автоинкремент при установке времени / будильника / и т. Д. Не нужно многократно нажимать одну и ту же клавишу.

Вышеперечисленные функции реализованы с помощью многоуровневого меню с текстовыми подсказками, которыми можно управлять, используя ограниченные 7-сегментные дисплеи. Это меню помогает (IMO) с «где-то-ад-я» в довольно замученном, линейном меню оригинального программного обеспечения. Это требует больших затрат, а именно флэш-памяти, поэтому обратите внимание, что для первоначальной фиксации этого кода требуется 4,25 КБ памяти. Это не должно быть проблемой для упомянутых часов Banggood, поскольку они поставляются с 8k-чипом, STC15W408AS. Если вы хотите использовать это в аналогичной модели, которая имеет только 4 КБ доступной вспышки, некоторые функции необходимо будет удалить. Поскольку эта работа еще не завершена, запрос с удалением хотя бы одной функции должен дать вам ветку, для которой потребуется не более 4 Кбайт флэш-памяти.

Я обнаружил, что объединение выбора единиц (часовой формат, формат даты и температура) в одну группу в качестве выбора США / ЕС, а не трех отдельных частей, хорошо работает для получения размера кода менее 4 КБ. Оглядываясь назад, это может быть лучшим методом, чем сохранять их как отдельные выборы в будущем. Другой вариант - убрать отображение дня недели, которое я считаю довольно бесполезным.

Структура меню в PDF
clock state machine.pdf
(24.42 KiB) Скачиваний: 486

Re: Нужна помощь в программировании

Вт фев 05, 2019 01:05:32

Может кого заинтересует синхронизация с NTP через ESP8266 + AM2302 от onivan

ЗДЕСЬ

Re: Нужна помощь в программировании

Вс фев 10, 2019 01:53:33

Maker39 жду партию STC15W408AS с Али для тестов aFewBits
прошивки от Zhuk72 не понравились сделал откат на родные с заменой МК ( вернул китай тк были в наличии чистые STC15W404AS для тестов кому не понятно считать родную прошивку нельзя она залочена )
Сам в программировании я ноль но изменить прошивку ( если носом ткнут где и что изменить при помощи CodeVision не вижу проблемы )

P.S В оригинале (( для меня устраивают все функции кроме ежечасового бипа ( который должен делать короткий бип в течении 1с вместо прерывных сигналов в течении 15с ) это косяк китайских айтишников))
Последний раз редактировалось OLIGARX Вс фев 10, 2019 20:41:57, всего редактировалось 1 раз.

Re: Нужна помощь в программировании

Вс фев 10, 2019 09:14:46

Maker39, спасибо за ссылку. Прошил часы на 404AS.

Очень порадовала настройка порогов яркости, как мне её не хватало!
Есть погрешности или я не совсем разобрался с калибровкой температуры (выставляю 29С, сохраняю, показывает 33С).
Жаль, что функционал кнопки "F" ограничен, возможно, объём программы не позволяет. Хотелось бы, чтобы длинное нажатие пускало в настройки, а короткое меняло режим отображения, например, только термометр.

Re: Нужна помощь в программировании

Вс фев 10, 2019 11:59:25

M - 16., на этой прошивке заметно мерцание индикаторов? Прошивка от Zhuk72 отличная, но сильно раздражают мерцающие индикаторы...
P.S. Еще интересно, отключена ли подзарядка элемента питания (trickle charger) у DS1302? В оригинальной прошивке китайцы что-то намудрили, в результате обычную батарейку нельзя в них ставить было - она постоянно заряжалась. У Zhuk72 эта функция отключена, интересно, как с этим дела в этой прошивке.

Re: Нужна помощь в программировании

Вс фев 10, 2019 12:32:17

Жаль, что функционал кнопки "F" ограничен, возможно, объём программы не позволяет. Хотелось бы, чтобы длинное нажатие пускало в настройки, а короткое меняло режим отображения, например, только термометр.

Можно попробовать автору на гитхабе в обратной связи предложить улучшение. Что-то подобное вроде у zerog2k было.
Как по мне , так считаю правильным , что вход в настройки не простым нажатием (порой случайным) происходит, а как-то хитрее.
И, что касается отображения температуры , мне не нравится ждать минуту, пока она появится на дисплее и раздражает периодическое резкое изменение общей яркости (особенно ночью в 1:11) при отображении в авто режиме.
А вот по кнопке, когда нужно - самое то.
denmmx не попробуешь -не узнаешь, как показало обсуждение в этой ветке - очень субъективно это "заметно мерцание". Кто-то видит, кто-то нет, Я например только боковым зрением при определенных условиях замечал.

Re: Нужна помощь в программировании

Вс фев 10, 2019 15:56:57

denmmx, при максимальной яркости индикаторов мерцания не замечаю, в отличие от прошивки Zhuk72.
Зато сейчас в комнате относительно темно, включена настольная лампа и монитор, часть отражённого рассеянного света попадает на полку с часами позади монитора. Индикаторы довольно заметно мерцают, причём то волнообразно, то вразнобой. При выключении лампы или монитора мерцание пропадает. Возможно, имеет место какая-то хитрая интерференция LED-подсветки монитора и КЛЛ настольной лампы. :) В полной темноте мерцания я тоже не замечаю.
Буду продолжать наблюдение :)
Насчёт заряда батареи не готов сейчас ответить, можно попробовать у автора на гитхабе полюбопытствовать.

upd
Установка "00" секунд оставляет текущие минуты, неудобно для тех, у кого часы отстают (как у меня).
Вход в режим "мм"."ss" включается нажатим нижней кнопки, установка 00 секунд производится нажатием этой же кнопки. Выход из режима автоматический или нажатием верхней кнопки.
Немножко отогнул фоторезистор назад, мерцание пропало. Это, разумеется, не панацея.
Хотелось бы, конечно, наличия корректировки хода и установки года, чтобы с количеством дней в февралях не запариваться. Отключения будильника по выходным.
Тогда кнопки можно вообще заблокировать. :)
Последний раз редактировалось M - 16. Вс фев 10, 2019 16:19:37, всего редактировалось 1 раз.

Re: Нужна помощь в программировании

Вс фев 10, 2019 16:18:45

M - 16.,
P.S. Еще интересно, отключена ли подзарядка элемента питания (trickle charger) у DS1302? В оригинальной прошивке китайцы что-то намудрили, в результате обычную батарейку нельзя в них ставить было - она постоянно заряжалась. У Zhuk72 эта функция отключена, интересно, как с этим дела в этой прошивке.

Насколько я понял, в DS1302 tricle charge по умолчанию отлкючен. Включается отдельно при инициализации в прошивке. Зачем китайцы в своей прошивке это сделали - непонятно, возможно изначально планировался какой-то перезаряжаемый элемент или ионистор, но в серию пошли платы под литиевую таблетку, а из прошивки убрать забыли.

Re: Нужна помощь в программировании

Вс фев 10, 2019 17:39:18

M - 16., тот, что наверху из корпуса торчит? Это вроде бы термодатчик, сам фоторезистор на плате сзади распаян :)
Короче нужно прошиться и посмотреть по мерцанию, ибо оно на прошивке Zhuk72 было видно на любой яркости, просто со временем уже глаза как-то привыкли и если не думать, не замечаешь почти.
Плохо что нет корректировки хода, но там авторы вроде планируют мануал сделать по модификации прошивки.

Re: Нужна помощь в программировании

Вс фев 10, 2019 19:15:03

denmmx,
Зато сейчас в комнате относительно темно, включена настольная лампа и монитор, часть отражённого рассеянного света попадает на полку с часами позади монитора. Индикаторы довольно заметно мерцают, причём то волнообразно, то вразнобой. При выключении лампы или монитора мерцание пропадает. Возможно, имеет место какая-то хитрая интерференция LED-подсветки монитора и КЛЛ настольной лампы. :) В полной темноте мерцания я тоже не замечаю.

Очень может быть... даже скорее всего.
При "быстрой" АРЯ (без усреднения за период времени) возникает интерференция вызванная мерцанием лампы (LED шимятся, энергосберегайки с электромагнитным балластом по жизни вообще моргалики те еще).

Добавлено after 33 minutes 52 seconds:
Плохо что нет корректировки хода, но там авторы вроде планируют мануал сделать по модификации прошивки.

Плохо представляю себе "корректировку хода" часах на RTC :shock:
Как Вы себе представляете это?
Программированием не владею, и мне кажется , что по затратам (программым извращениям в реализации этой функции) все-же дешевле подобрать копеечный кварц на 32,768.
Установка по сигналам точного времени есть , при отстающих часах добавить минуту в другом пункте меню не особо и сложно.
Есть еще проект с ESP8266 c NTP синхронизацией ...

Re: Нужна помощь в программировании

Вс фев 10, 2019 19:31:01

Плохо представляю себе "корректировку хода" часах на RTC :shock:
Как Вы себе представляете это?


Выразился неправильно) Имел ввиду, что нет возможности год выставить и не будет учитываться кол-во дней в феврале ,как писали выше)
А что касается хода самих часов, проще руками раз в пару месяцев скорректировать, чем возиться с отдельной NTP-синхронизацией, тем более с такими багами в текущем релизе.

Re: Нужна помощь в программировании

Вс фев 10, 2019 21:01:35

чем возиться с отдельной NTP-синхронизацией


лично я не вижу больших проблем с реализацией NTP
доп инфа от автора vidivana ЗДЕСЬ

Re: Нужна помощь в программировании

Пн фев 11, 2019 05:20:29

Не думаю, что программно каждые сутки пару секунд накидывать или придерживать сильно геморно реализовать.
Пробовал я кварц менять. Видимого эффекта не дало.
Ночью яркость комфортная, по глазам не бьёт, мерцания нет.
Дни недели отображаюся буквами, корявенько.

Re: Нужна помощь в программировании

Вс фев 24, 2019 07:18:29

чем возиться с отдельной NTP-синхронизацией


лично я не вижу больших проблем с реализацией NTP
доп инфа от автора vidivana ЗДЕСЬ

Спасибо, что напомнили об этой теме на форуме.
Можете глянуть, кому интересно. Синхронизация через обмен по UART от ESP8622. За основу взят https://github.com/zerog2k/stc_diyclock
Модификация исходной конструкции часов практически нулевая. Нужно только подпаять ESP8622 к входу UART MC. Модуль WEMOS D1 mini идеально поместился в корпус.
Я должен был выбросить большинство функционала из-за того, что кончилась SRAM. Думаю, можно оптимизировать (много глобальных переменных, я первый раз программировал для этой архитектуры), но мне и так подходит.

Есть отображение времени; каждую минуту 5 секунд (и по верхней кнопке) -- влажность, температура; регулировка яркости от фоторезистора. Не мерцают.

https://github.com/onivan/stc_diyclock-ntp
Последний раз редактировалось onivan Вс фев 24, 2019 19:39:42, всего редактировалось 1 раз.

Re: Нужна помощь в программировании

Вс фев 24, 2019 17:35:14

Ну , раз уж появился Автор проекта с NTP синхронизацией времени, да еще и по русски говорит :) Спасибо за проект и описание
не могу удержаться задать пару вопросов.
1. Использование ESP8266 c прошивкой https://wifi-iot.com/ показало периодические падения , причем порой наглухо NTP серверов.
Вопрос : Есть возможность сменить адрес NTP сервера в прошивке ESP от http://nodemcu-build.com ?
2. Не было мыслей по загрузке текущего времени прямо в DS1302 там вроде I2C ?

Re: Нужна помощь в программировании

Вс фев 24, 2019 19:19:05

1. https://nodemcu.readthedocs.io/en/maste ... /#sntpsync
Можно задать даже список NTP серверов. По-умолчанию, модуль использует свой "пул" серверов. Также может находить сервера по "anycast".

В прошивке сделал так, что если нет синхронизации в течении 30 секунд, начинает мигать первая точка. За месяц работы с параметрами по-умолчанию не синхронизировалось только из-за отсутствия интернета от провайдера.

2. Это первое, что я пробовал сделать... Но, к сожалению, у меня не получилось. Также, при передаче через UART я смог выводить H и T с датчика AM2302. Валяются уже несколько лет, так хоть куда-то приспособил.

Как код прошивки, так и скрипт для ESP можно улучшить. Я не большой спец по MSC51 и Lua, но было интересно их немного изучить на этой задаче.

Упс! Только что глянул код. Я вписал пул NTP "pool.ntp.org". На сайте ntp.org написано, что этот пул автоматически подбирает ближайший рабочий сервер.
И еще. Я копировал куски кода из документации, а комментарии не всегда исправлял, так что, будьте внимательны!

Re: Нужна помощь в программировании

Вс фев 24, 2019 19:32:25

Спасибо за инфу !
Респект и Уважуха :)

Re: Нужна помощь в программировании

Вс фев 24, 2019 19:36:08

Только что исправил еще один баг в init.lua !

Re: Нужна помощь в программировании

Вс фев 24, 2019 19:42:37

Обычно говорят "только что исправил ПОСЛЕДНИЙ баг"! ))
Ответить