можно взять термоусадочную трубку, надеть её на толкатель кнопки и заклепку и прогреть зажигалкой. заклепка будет железно держаться за кнопку.Barbudas писал(а):Заклёпки пробовал, из-за большого расстояния и тонкого стекла их перекашивает малость.
Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
- Сообщения: 392
- Зарегистрирован: Сб дек 12, 2009 02:15:45
- Реклама
Уважаемый neon-f, Вы мои кнопки видели? На них термоусадку не натянешь. Домой приду сфоткаю покрупнее, чтобы было понятно как выглядит.
Уважаемый Danko, большая просьба посмотреть, что не так в прошивке для Mega16 с коррекцией часов, т.к. фокус при переходе через 00:00 вновь повторился - в разряде часов снова выскочило F7, а утром в разряде часов 62 вместо 5. Лечится только извлечением батарейки и настройкой часов.
Уважаемый Danko, большая просьба посмотреть, что не так в прошивке для Mega16 с коррекцией часов, т.к. фокус при переходе через 00:00 вновь повторился - в разряде часов снова выскочило F7, а утром в разряде часов 62 вместо 5. Лечится только извлечением батарейки и настройкой часов.
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
- Сообщения: 392
- Зарегистрирован: Сб дек 12, 2009 02:15:45
Сейчас пялился в листинг с программой и прочитал до кучи описание работы DS1307, но так и не въехал в чём фокус с переходом через 00:00. Сначала, когда на часах выскочило F7, подумал, что это 23 в шестнадцатиричной системе, а когда увидел утром вместо 5 часов 62 и сейчас вместо 19 часов 44, не знаю что и подумать, логики как-то не прослеживается, кроме того, что показания часов убывают, как в таймере. Может попробовать сравнить листинг от Mega8, управление DS1307 должно быть аналогично. Посмотрим, что часы нарисуют сегодня при переходе через 00:00 и какие цифры к тому времени будут в разряде часов.
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
Секоторое время назад собрал я для знакомых часы на мега8 и семисегментниках 2,3 дюйма. Через некоторое время хозяйка часов пожаловалась, что индикаторах вместо часов абракадабра из букв и цифр. Забрал я их домой и дома у меня поломку я так и не нашел. Целую неделю "шли как часы". Вернул хозяйке и глюки вернулись, предложил перенести их в другую комнату. Глюки исчезли, но начали появляться при включении телевизора возле которого они стояли.
Вот такая история.
Barbudas, у Вас часы вначале работали от аккумулятора, а затем возле платы появился блок питания и глюки начались.
Я правильно понял?
Вот такая история.
Barbudas, у Вас часы вначале работали от аккумулятора, а затем возле платы появился блок питания и глюки начались.
Я правильно понял?
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
- Реклама
Вполне возможно.tipoya писал(а):Уважаемый Danko мною замечена ошибка в работе часов при положительной коррекции хода.
Наблюдается остановка даты. Насколько я понимаю, коррекция происходит в промежутке 23.59-00.00 простым добавлением секунд и DS1307 не видит перехода через 00.00 и как результат остановка даты.
Я хочу переделать корректировку хода. Хочу добавить отслеживание корректировки на случай если во время корректировки вырубили свет и МК скорректировать ход часов не смог. Да и конечно перенесу корректировку с межсуточного промежутка на другое время.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Уважаемый Danko, не совсем так. Сначала глюк появился когда часы были подключены к БП, но он был в метре от часов, позже я его встроил в часы. Дело в том, что когда часы работали от аккумулятора, они выключались на ночь с целью экономии аккумулятора, поэтому эффект не проявлялся. Я тут проанализировал показания часов и пришёл к следующему:
1. При переходе через 00:00 в разряд часов записалось F7
2. Утром на часах вместо 5 часов было 62, т.е. 7 дотикала до 10 и пошла заново 7+3=10 и 2, при этом F сбросилось до 6.
3. Когда через 12 часов придя с работы на часах увидел 44, то получилось 2+2=4 в единицах часов, а 6 сбросилась до 4
4. Что же увидим через 4 часа? Сейчас на часах 46:02.
Ниже картинка кнопочек. Это для neon-f.
1. При переходе через 00:00 в разряд часов записалось F7
2. Утром на часах вместо 5 часов было 62, т.е. 7 дотикала до 10 и пошла заново 7+3=10 и 2, при этом F сбросилось до 6.
3. Когда через 12 часов придя с работы на часах увидел 44, то получилось 2+2=4 в единицах часов, а 6 сбросилась до 4
4. Что же увидим через 4 часа? Сейчас на часах 46:02.
Ниже картинка кнопочек. Это для neon-f.
- Вложения
-
- 20.JPG
- (13.3 КБ) 1133 скачивания
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
И ещё. Часы сейчас стоят просто на столе, под пальмой, редом в радиусе метра ни одного электроприбора. Могу отключить БП и перейти на аккумулятор, если считаете, что дело в БП. Только почепу проявляется в 00:00, и почему всегда F7?
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
Прошивки в закромах у меня нет. Но и в текущую (на мега16) добавить пару функций большого труда не составит.Barbudas писал(а):1. Можно ли к этому проекту прикрутить регулятор яркости для больших индикаторов, а то ночью их за пожар принимают
2. Один заказ на часики для кухни. Не секрет, что часть жизни у нас проходит там. А поэтому в функцию часов просили прикрутить простенький таймер.....
Вечером программу (прошивку) для мега16 еще раз пересмотрю и погоняю в протеусе.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Спосибо, Danko, буду ждать результат.
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
Сегодня попробую залить новую прошивку. Вчера, когда на часах должно быть 00:00, часы показывали 49:00, ушёл спать. В 5 утра часы снова показывали 62:00. Тут уже логика не прослеживается. Переустановил часы через SET, батарейку не вынимал, корректировал только показание часов, причём, как только нажал +, показания часов обнулились. Установка прошла нормально. Посмотрю что будет к вечеру и испытаю новую прошивку от Danko. Спасибо ему за оперативный ответ.
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
Я тут наврал малость, после перехода через 00:00 выскакивает 7F. После того как утром уходя на работу настроил часы сбоев не было. Придя решил их подрессировать. Несколько раз выставлял 23:58 и наблюдал. При 23:59 начинается подмаргивание индикаторов, как будто срабатывает какой-то процесс и индикаторы горят с пропуском тактов. Затем, как положено выскакивает 0:00, а через секунды три 7F. Буду пробовать новую прошивку, но думаю, она проблему не решит.
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
Итак, отчёт. Залил новую прошивку с коррекцией хода на 22:59. Во-первых вывод показаний на все индикаторы оказался инверсный, это мелочи. Переход через 23:00 прошёл нормально. Как и раньше индикаторы чуть подмаргивали, потом 23:00 и часы пошли дальше. А вот дальше был фокус. Выставил на часах 23:58 и при переходе через 00:00 получил снова 7F и часы потикали дальше. Т.о. коррекция хода часов никак не влияет на появление 7F в рвзряде часов после 00. Причём, если питание отключено и часы работают на батарейке, то переход через 00:00 происходит корректно. Т.е., если питание вечером отключить и включить утром, то часы показывают время корректно. Значит в момент перехода через 00:00 Mega16 что-то прописывает в DS1307. Откуда берётся значение 7F? В десятичном это 127? А может наоборот, после 00:00 Mega16 что-то считывает не с того места?
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
Приветствую Всех, тоже собираю часы на Мега16, спасибо большое Danko. Протестировать пока на ошибку описанную Barbudas-ом не могу, нет некоторых компонентов, но немножко обеспокоен, слежу за темой!
VERON, для беспокойства нет оснований.
Barbudas, все дело не в блоке питания и не в DS1307, все дело в программе, а точнее в её одной строке.
Ряд функций в часах на мега8 и на мега16 абсолютно идентичных, но работают они по разному (хотя я считал, что работают одинаково). По этому и ошибка в часах на мега16 вылезла только сейчас.
В следующей версии программы (прошивки) часов на мега8 будут учтены недостатки программы часов на мега16.
Barbudas, огромное спасибо.
P.S.
коррекция перенесена с 23:59 на 22:59
Barbudas, все дело не в блоке питания и не в DS1307, все дело в программе, а точнее в её одной строке.
Ряд функций в часах на мега8 и на мега16 абсолютно идентичных, но работают они по разному (хотя я считал, что работают одинаково). По этому и ошибка в часах на мега16 вылезла только сейчас.
В следующей версии программы (прошивки) часов на мега8 будут учтены недостатки программы часов на мега16.
Barbudas, огромное спасибо.
P.S.
коррекция перенесена с 23:59 на 22:59
- Вложения
-
- Clock-Term-Calendar_Mega16_2010-04-07.zip
- (152.09 КБ) 361 скачивание
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Danko, извини,но обе прошивки к часам совсем не подходят - нет привязки к сегментам. Пробовал заливать обе, вместо запято сегмент b мигает. Сегодня мне уже это не побороть, надо к завтрашней поезке приготовиться, а вечером по приезду попытаюсь скорректировать привязку сегментов под свои часы и проверить прошивку. На всякий случай прикрепляю прошивку которая крутится в часах сейчас. Для тех кто не в теме, поясняю, это прошивка для Mega16 с 10 транзисторными ключами на разряды (4LED 2,3" и 2х3LED 1") и ULN на сегменты. Схему выкладывал ранее.
- Вложения
-
- star pr.rar
- Старая прошивка
- (6.49 КБ) 314 скачиваний
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
Попытался привязать новую прошивку к часам, возникло куча вопросов. В новой прошивке выводятся некоторые символы, которых в старой не было. И есть непонятки с привязкой сегментов:
В старой, что сейчас в часах:
#define A 1
#define B 2
#define C 4
#define D 8
#define E 16
#define F 32
#define G 64
В новой:
#define A 1
#define B 4
#define C 16
#define D 64
#define E 128
#define F 2
#define G 8
Может кто-нибудь пояснить почему в новой прошивке отсутствует 32 и появилось 128? Может в первом случае 128 будет точкой, а во втором для точки 32? Тогда почему нет строчки #define dp 32? Или это не обязательно?
В старой, что сейчас в часах:
#define A 1
#define B 2
#define C 4
#define D 8
#define E 16
#define F 32
#define G 64
В новой:
#define A 1
#define B 4
#define C 16
#define D 64
#define E 128
#define F 2
#define G 8
Может кто-нибудь пояснить почему в новой прошивке отсутствует 32 и появилось 128? Может в первом случае 128 будет точкой, а во втором для точки 32? Тогда почему нет строчки #define dp 32? Или это не обязательно?
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
От количества версий немного запутался у кого какая схема, а точнее как привязаны сегменты.
В принципе есть два варианта.
вариант 1:
A бит 0
B бит 1
C бит 2
D бит 3
E бит 4
F бит 5
G бит 6
точка бит 7
каждый бит в байте имеет свой вес
бит 0 - 1
бит 1 - 2
бит 2 - 4
бит 3 - 8
бит 4 - 16
бит 5 - 32
бит 6 - 64
бит 7 - 128
когда все биты равны 1 суммируем и получаем 255
что касается точки и почему нет #define dp 128
разряд выводится записью байта в порт, а точка выводится записью бита в порт. соответственно нужно выбрать бит порта к которому подключена точка.
PORTB.7=0;
или
PORTB.5=0;
вариант 2:
в нем точка припаяна на бит 5
В принципе есть два варианта.
вариант 1:
A бит 0
B бит 1
C бит 2
D бит 3
E бит 4
F бит 5
G бит 6
точка бит 7
каждый бит в байте имеет свой вес
бит 0 - 1
бит 1 - 2
бит 2 - 4
бит 3 - 8
бит 4 - 16
бит 5 - 32
бит 6 - 64
бит 7 - 128
когда все биты равны 1 суммируем и получаем 255
что касается точки и почему нет #define dp 128
разряд выводится записью байта в порт, а точка выводится записью бита в порт.
Код: Выделить всё
if ((zpt_ON == 1) && (cur_dig == 1)) PORTB.7=0; PORTB.7=0;
или
PORTB.5=0;
вариант 2:
в нем точка припаяна на бит 5
Последний раз редактировалось Danko Пт апр 09, 2010 11:35:26, всего редактировалось 1 раз.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Спасибо Danko, просто я наверное вчера тормозил после командировки. Сегодня попытаюсь подогнать прошивку и попробовать, как с работы приду.
Мне казалось, я бегу полем
На не чующих травы лапах…
На не чующих травы лапах…
Часы на мега8.
Новых функций не добавлял.
Перенес коррекцию с 23:59 на 22:59.
Ну и еще кое-где подправил для стабильности и надежности.
Новых функций не добавлял.
Перенес коррекцию с 23:59 на 22:59.
Ну и еще кое-где подправил для стабильности и надежности.
- Вложения
-
- Clock-Term-Calendar-Alarm_LED_2010-04-09_e.zip
- (82.98 КБ) 436 скачиваний
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"


