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

Re: Китайский набор часы

Ср авг 31, 2016 06:24:40

Так у них у всех "внутри регистры"...
Только вот по командам управления и назначению бит там "некоторая разница".
:wink:
Помимо прочего DS1302 разрабатывалась для питания от ионисторов - отсюда уже
весьма кардинальны отличия в командах будут.
8)

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

Ср авг 31, 2016 21:24:13

Zhuk72 может возьметесь перепрограммировать мне контроллер? Можно написать в личку: roslux50@mail.ru Обо всем договоримся.

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

Ср авг 31, 2016 22:26:54

А как я это сделаю, если программа еще не готова?
:)

Кроме того под Ваш МК надо будет делать изменения, я думаю это будет просто, но испытывать придется Вам самим, у меня часы другие. Прошить готовый файл реально очень просто.

Когда программа будет готова, я выложу прошивку в открытый доступ. Но никаких конкретных сроков дать не могу, на руках другой "китайский" проект, который надо добить.

Re: Китайский набор часы

Чт сен 08, 2016 22:23:48

Zhuk72 писал(а):. Сделал 16 уровней яркости в зависимости от освещенности (у родной прошивки 2 уровня), хотя даже на минимальной яркости ночью некоторым ( :)) ) мешает.
Остановился на управлении, конкретно вводе данных.
.

можно подробнее ?
и как количество сигналов уменьшить до 1

Re: Китайский набор часы

Пт сен 09, 2016 06:04:18

Какие подробности интересуют?
Количество сигналов уменьшить? Почасового? Ну так это только изменением прошивки. Я сделал одинарный короткий бип.

Кстати, вчера вернулся к работе над часами. Пока только исправил некоторые старые огрехи, улучшил читабельность за счет полученного опыта и по мелочи кое-что. Быстро не обещаю, т.к. приходится урывками писать между рабочими делами.
Могу сбросить текущую прошивку, но из управления там только отключение-включение почасового сигнала. Если в DS1302 время установлено, то оно будет показываться, но менять пока нельзя. Яркость меняется, перебор показаний (часы 45с и дата, день, температура по 5с) работает.
Но еще раз скажу, что это для часов с 28-ногим контроллером. На урезанном варианте без переделки работать не будет.

И еще интересная деталь. Может кто сможет объяснить. С весны часы бездействовали в отключенном состоянии, т.е. питались только от внутренней батарейки, я ДС имею в виду. Так вот за всё это время ни на минуту не соврали! Вчера они показали абсолютно точное с текущим время! Хотя когда они работали, каждый месяц приходилось отбрасывать их минут на 8 назад.

Re: Китайский набор часы

Вт сен 13, 2016 21:55:49

Сейчас расписываю установку данных (часы, дата и пр.), дошел до числа месяца и завис в раздумьях.
Какие числа перебирать для месяца? Оставить на совести юзера правильность ввода? Дело в том, что месяц вводится после числа (в оригинале была западная система месяц-число), и если ориентироваться по текущему месяцу, февраль например, а потом пользователь установит март и ему придется делать круг по другим установкам, чтобы снова вернуться к числу и выставить, скажем, 29, 30 или 31. Будет крайне неудобно и муторно.
С другой стороны, если ввести заведомо ложные числа и потом загрузить их в ДС1302, как он их воспримет, ведь у него даже есть коррекции февральских дней по високосным годам. С ума сойдет? В Протеусе проверю :))

Re: Китайский набор часы

Ср сен 14, 2016 01:07:54

Zhuk72 писал(а):И еще интересная деталь. Может кто сможет объяснить. С весны часы бездействовали в отключенном состоянии, т.е. питались только от внутренней батарейки, я ДС имею в виду. Так вот за всё это время ни на минуту не соврали! Вчера они показали абсолютно точное с текущим время! Хотя когда они работали, каждый месяц приходилось отбрасывать их минут на 8 назад.
Может так написана прошивка китайцами? Например, считывают время с "ДС" только один раз, а дальше не обращаются к RTC, пока не пропадет питание.
Вот так и накапливается ошибка.
А вы можете свои наработки по "STC" скинуть на почту мне, например? Или еще куда-нибудь, не очень понимаю я этот ресурс, на который ссылку вы давали.
Ну и хотелось бы от печки: как настроить кейл, какой программатор и тд?

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

Ср сен 14, 2016 06:38:06

Ошибка более присуща RTC, чем часам "внутри МК".
Большинство простых RTC не имеют средств коррекции хода для энергонезависимого режима, в то же время организация такого вида коррекции (в непрерывном режиме) обязательная часть ПО для МК.
Так что режим "считать параметры при включении питания и далее тикать автономно" вполне приемлем.
А в случае с DS1307 вполне может выдавать более качественный отсчет.
Для гурманов(лентяев) более интересно применение RTC со встроенной коррекцией типа DS3231, но... там нету свободного энергонезависимогоОЗУ...
Или еще чего из редковстречаемых(тот же рамтрон).
8)

Re: Китайский набор часы

Ср сен 14, 2016 10:37:37

Rtmip писал(а):Может так написана прошивка китайцами? Например, считывают время с "ДС" только один раз, а дальше не обращаются к RTC, пока не пропадет питание.

А вполне может быть и так. Хотя не понимаю зачем изобретать часы на МК с малостабильным внутренним генератором, когда можно периодически считывать данные с ДС и обновлять индикатор.

Rtmip писал(а):А вы можете свои наработки по "STC" скинуть на почту мне, например?
Ну и хотелось бы от печки: как настроить кейл, какой программатор и тд?

В смысле исходники часов?
Давайте я сперва доделаю все свои хотелки на этих часах, а потом посмотрим ))

СпойлерЯ не люблю показывать свои скромные достижения, т.к. насмотрелся (начитался), как некоторые считают своим долгом обозвать подобное "быдлокодом", особенно если это сделано новичком-любителем, коим являюсь я. Может это и очевидно, но звучит обидно и отбивает всякое желание показывать "кухню".
Вас и вообще никого конкретно не имею в виду, но, сами знаете, на русскоязычных форумах такое отнюдь не редкость :(


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

На данный момент 3-я сверху ссылка ведет на файл STC8051SetupV312.rar, который добавит базу данных и настройки для их МК в Кейл. Программа-прошивальщик 7-я сверху, stc-isp6.85F.rar, текущая версия 6.85F. Прошивка осуществляется через любой TTL-UART переходник, будь то MAX232 для ком-порта или какой-нибудь FT232, CP210x и пр. для USB. Нужны только 2 пина - RX и TX. В прошивальщике, кстати, много полезностей в виде генерации на Си и Асм готовых настроек для таймеров (проверял, верить можно), софтовых задержек (пока не проверял, но похоже на правду), генерация заголовочных файлов для их МК, ссылки на ДШ и пр. Вот здесь ссылка на даташит на обсуждаемый контроллер.

Эти часы (и еще "народный" контроллер для паяльной станции под Т12) - мой первый опыт с 51-м семейством (после ПИКов). В принципе при написании на Си учитываешь только конфигурацию железа, вся логика работы неизменна и переносима как есть. Понравились режимы работы таймеров (хотя и отличаются от "классики"), понравились порты, простота прошивания. Скорость у этих китайцев в сравнении с "классикой" выше в 12 раз (команды однотактные), плюс работа до 35 МГц. А в остальном ничего особенного, из периферии только АЦП с опорой от питания и ЕЕПРОМ. ДШ написан не всегда понятным английским языком (ну неродной он для них :) ) и частенько сумбурно, перескакивают с одного на другое, потом через несколько глав опять возвращаются назад ))

Re: Китайский набор часы

Ср сен 14, 2016 23:51:36

Zhuk72 писал(а):Давайте я сперва доделаю все свои хотелки на этих часах, а потом посмотрим ))
Я вас понимаю, все верно :)
Zhuk72 писал(а):Вот сайт, не знаю насколько официальный.
Спасибо, это именно то, что я спрашивал :beer:

Re: Китайский набор часы

Чт сен 15, 2016 06:22:37

Спасибо за понимание :)

Вчера вечером дописал основной функционал. Сегодня планирую добавить в настройки диапазон времени срабатывания почасового сигнала (он сейчас пищит, если разрешён, в фиксированные часы). С будильником связываться, честно говоря, не хочется. Из обязательных хотелок - быстрый перебор цифр в режиме редактирования при удержании кнопки "Плюс" (пока приходится щелкать по одной).
Ну и так как я проигнорировал имеющийся в часах терморезистор (я не знаю его тип, потому и не стал рассматривать вообще), надо заменить его на 1820 какой-нибудь.

Кроме того, надо будет сэмулировать МК автора темы и подстроить прошивку под него, ибо на живых часах без предварительных тестов ставить эксперименты нехорошо :)

Re: Китайский набор часы

Чт сен 15, 2016 23:17:15

Zhuk72 писал(а):А вполне может быть и так. Хотя не понимаю зачем изобретать часы на МК с малостабильным внутренним генератором, когда можно периодически считывать данные с ДС и обновлять индикатор....
Странно, да. Но думаю это можно легко проверить: запускаем часы и ждем, когда время будет врать примерно на минуту.
Отключаем часы от сети минут на 5 и снова включаем. Если покажут правильное время, то считывание один раз :idea:

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

Пт сен 16, 2016 09:59:12

pall6, прошивка для ваших часов с 20-ногим контроллером STC15F204EA-20 готова к проверке.
Я ее проверил в Протеусе, вроде работает, но сразу оговорюсь, что реальное железо может вывалить сюрприз. Но я все-таки предполагаю, что отличие от 28-пинового только и заключается, что в отсутствии одного порта, а остальные я перебросил согласно вашей схеме.
Файлы для часов с 28-ногим STC15F204EA-28 (термометр и датчик освещенности присутствуют) я выложу позже и отдельно.

Все файлы находятся в архиве. Там и схема, и файл Протеуса, и прошивка. Можете погонять, посмотреть как и что.

Вот прямая ссылка на прошивальщик. Пользоваться очень просто.
Вложение STC-ISP.gif больше недоступно.

Подключаете TTL-UART адаптер к пинам на часах Р3.0 (вход данных МК), Р3.1 (выход данных МК) и GND. Питание часов отключаете.
В программе выбираете ком-порт, через который прошиваете, скорости не трогаете, жмете "Open Code File", выбираете хекс, частоту из списка 11.0592 Мгц, остальные фьюзы как на картинке. Внизу жмете "Download/Program" и подаете питание на часы. Под дампом увидите как побегут сообщения и через пару-тройку секунд программирование закончится и часы сами запустятся.

Какая кнопка верхняя и нижняя у ваших часов я не знаю, но пусть верхняя (ВК) будет "плюс", а нижняя (НК) - "функ".
В обычном режиме краткое нажатие ВК (сопровождающееся сигналом) разрешает/запрещает периодическую смену информацию на экране (45с время и по 5с дата, день недели и год). Длинное (более секунды) нажатие разрешает/запрещает подачу почасового сигнала. Данная функция, когда включена, отображает точку в последнем разряде при отображении часов.
Короткое нажатие НК вручную переключает смену информации (часы, дата, день, год), длинное нажатие НК вводит часы в режим настройки. В этом режиме коротки нажатием НК ходите по пунктам настройки, коротким нажатием ВК увеличиваете показания (пока только по одному). В режиме настройки 1. Часы:Минуты, 2. Число.Месяц, 3. День, 4. Год, 5. СТАРТ.СТОП (т.е. начало и конец почасового сигнала). В любое время длинное нажатие НК выводит из режима настройки и сохраняет данные в памяти ДС1302. Для сброса всех данных при отключенных часах нажимаете обе кнопки и подаете питание. После этого кнопки отпускаете.

Ну вот вроде и все.
Вложения
STC-ISP.gif
(118.38 KiB) Скачиваний: 1155

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

Сб сен 17, 2016 17:23:44

Доработал прошивку, добавив приращение показаний в режиме настройки при удержании кнопки плюс.
Кроме того добавил программное уменьшение яркости дисплея из 16 уровней методом записи в 1-ю ячейку ЕЕПРОМ байтов от 0xF0 до 0xFF на стадии прошивания.
Если этот байт будет 0, разряды горят полные 5 мс каждый (период динамической индикации). При 0xF0 время свечения становится уже 4166 мкс, а при 0xFF - 276 мкс (это минимум, при котором еще нет выпадания сегментов). Значения между 0xF0 и 0xFF дадут промежуточные между указанными времена свечения. Подбирайте под свой вкус, либо ставьте отдельную схему с фоторезистором и полевиком на аноды индикатора.

Попутно исправил маленькую ошибку с проверкой диапазона срабатывания почасового сигнала, но тут же отловил другую, также связанную с почасовым сигналом, проблему, решение которой придумал, подробно расписывая ее здесь в надежде получить совет ))
СпойлерМне вдруг пришло в голову, что выставленный мной для себя диапазон подачи сигналов от 9 до 22 часов не является каноническим. Злой юзер может выставить крайний час подачи сигнала в полночь или в 2 ночи, и тогда моя проверка, основанная на том, что старт-тайм меньше стоп-тайма на всех парах летела к черту )) А если бы выставили оба времени одинаковыми? А если к тому же стоп-тайм назначен на полночь? Вот именно эти "если" и пришлось дорабатывать, а потом и проверять, меняя текущее время и время срабатываний в разных комбинациях.

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

На данный момент вроде все в порядке. Для данного урезанного варианта часов каких-либо недоделок не осталось. Проверяйте.
Вложения
STC_Clock_20pin.hex
(6.74 KiB) Скачиваний: 756

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

Пн сен 19, 2016 09:33:04

Zhuk72 писал(а):Доработал прошивку....Проверяйте.
Приветствую! Проверить могу только в протеусе. Он показывает, что есть недоработки :dont_know:
В режиме, когда нет периодической смены время-дата-время, часы перестают считывать время с RTC. Как в реале, интересно?
Ну и еще по мелочи есть, вроде, но это в протеусе, может на натуре все нормально :)
Вы писали на С в Кейле? Дюже хекс путанный :kill: еле разобрался с ним :facepalm:
Во вложении картинка из протеуса, для понимания происходящего, видно, что нет обмена.
Вложения
stc.JPG
(46.57 KiB) Скачиваний: 805

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

Пн сен 19, 2016 10:57:20

Доброго дня!

Дело в том, что я писал и проверял на 28-ногом, на своих реальных часах, а потом доработки и исправления делал параллельно и для 20-и. Причем идеи приходили в голову постоянно и иногда делал несколько изменений за раз и может не все переносил в 20-у. Проверять его мог только в Проте и то поверхностно, надеясь на проверку в своих реальных часах.
В них как раз я и отключил перелистывание и тем не менее время считывается нормально. Может при переносе кусков кода из одного проекта в другой я что-то напутал. Исходники 20-и у меня только дома, поэтому поправить смогу только вечером.
Можно и без картинок, я вам верю :) Еще до окончания написания у меня во время одного из экспериментов вылезло такое же, но я сразу поймал это и исправил. А как это оказалось на готовом, ума не приложу.

Дело в том, что время я читаю каждые 5 секунд, и тот же счетчик завязан на перелистывание (9 раз по 5, потом еще 3 по 5). Видимо при запрете перелистывания как-то запретилось и считывание. Я посмотрю вечером.

Да, пишу на Си в Кайле, асм 51-го не знаю.

P.S. Проверил, да уж, как-то так получилось, что для 28 ног я это поправил, а в этом забыл. Извиняюсь :)
Прикладываю исправленный хекс.

P.P.S Сейчас пытаюсь прикошачить в проект DS18B20 (на замену терморезистору), пока только виртуально, в Протеусе, ибо паять неохота было.
Но, странное дело, рабочий, вполне отработанный для PIC16F876 алгоритм, естественно с изменениями под текущий камешек и с учетом моего личного поумнения с февраля месяца (то было мое первое написание на Си), не пожелал работать на этих часах. Даже элементарный Init не проходит, не отвечает термодатчик. При этом с ПИКом этот же Прот работал как часы. Я связываю это с тем, что ПИК для Протеуса был как бы настоящим, а китайский МК я эмулирую под АТ89С51, поэтому с учетом разности скоростей выполнения он неправильно эмулирует паузы. Даже с таймерными паузами не получается. Иной причины я не вижу. Видимо придется пересилить лень, подпаиваться и проверять в железе :(

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

Вт окт 04, 2016 22:22:38

на 28-ногом эта прога не пойдёт ? если нет то скиньте на 28
мне бы в идеале только часы с температурой , без всяких дней недели и дат ,
несколько режимов подсветки тоже хорошо ,
и каждый час только одиночный сигнал

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

Ср окт 05, 2016 06:42:24

На 28 ног другая прошивка.
15 дней назад я отправлял на публикацию статью, где все подробно изложил, но ее до сих пор не опубликовали. И ответа на мой имейл тоже 0. Видно придётся в другом месте выкладывать.

А хекс я сброшу сюда вечером.
Только температура там до сих пор нулевая, т.к. я планирую заменить терморезистор на ДС1820. Код уже написан, но пока не введен в общую программу (я отрабатывал термометр на отдельной тестовой плате). Кроме того, пролистывание показаний возможно только полное, либо только часы. Ну и конечно же в ручном режиме. Делать отдельно прошивку под часы и термо нет смысла, а вводить в настройки режим показа пока не планирую.


UPDATE:
STC_Clock_28pin.hex

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

Ср окт 05, 2016 21:04:41

из плюсов только что можно отключить пролистывание
из минусов нет температуры
я правильно понял ?
ок может на пальцах объясните где чем и как исправить (поменять ) пролистывание с 5 на 2 сек

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

Чт окт 06, 2016 06:15:10

Плюсы и минусы вы должны определить самостоятельно, прописав этот хекс. Термометр на ДС я добавлю, это лишь вопрос времени (скорого). Из того, что есть в оригинале и нет у меня, - это будильник. И добавлять его даже не планирую.

2 секунды сделать можно. Правда придется добавить еще один счетчик, т.к. каждые 5 секунд отсчёта считываются данные из RTC и этот же счетчик завязан на перелистывание показаний. Надо будет разделить их, ибо не хочется дергать 1302 каждые 2 секунды. В итоге будет 54 с время и 3 раза по 2 с всё остальное.

UPDATE: подправил хекс. Помимо изменения времени перелистывания, исправил ошибку, информацию о которой вычитал в теме о часах. Ошибка заключалась в том, что некоторые писатели программ (я в их числе :) ) при подаче питания вместе с очисткой бита Clock Halt обнуляли и секунды (они все в одном регистре сидят), в результате чего часы отставали прямо пропорционально количеству отключений питания :) Теперь сделал проверку СН и очистку только его одного при необходимости.
Кроме того, автоматическую регулировку яркости сделал отключаемой. Это понадобилось мне лично, т.к. на морду часов я приклеил темную пленку. И вышло так, что если раньше был перебор яркости (даже с учетом автопонижения), то теперь я стал ощущать ее нехватку, особенно в темноте :)))

Вечером дома протестирую на часах все доработки и выложу обновленный хекс.

UPDATE 2:
STC_Clock_28pin.hex

Для отключения/включения авторегулировки яркости обессточьте часы, нажмите и удерживайте НК (FUNC) с последующей подачей питания. После этого кнопку отпустите. Все остальные функции работают как описано ранее.

UPDATE 3:
STC_Clock_20pin.hex

Аналогичное исправление, связанное с Clock Halt, сделал и для light версии часов. Также изменил время перелистывания.
Ответить