Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)

Обсуждаем контроллеры компании Atmel.
Ответить
Потрогал лапой паяльник
Сообщения: 392
Зарегистрирован: Сб дек 12, 2009 02:15:45

Сообщение neon-f »

Barbudas писал(а):Заклёпки пробовал, из-за большого расстояния и тонкого стекла их перекашивает малость.
можно взять термоусадочную трубку, надеть её на толкатель кнопки и заклепку и прогреть зажигалкой. заклепка будет железно держаться за кнопку.
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

Уважаемый neon-f, Вы мои кнопки видели? На них термоусадку не натянешь. Домой приду сфоткаю покрупнее, чтобы было понятно как выглядит.
Уважаемый Danko, большая просьба посмотреть, что не так в прошивке для Mega16 с коррекцией часов, т.к. фокус при переходе через 00:00 вновь повторился - в разряде часов снова выскочило F7, а утром в разряде часов 62 вместо 5. Лечится только извлечением батарейки и настройкой часов.
Мне казалось, я бегу полем
На не чующих травы лапах…
Реклама
Потрогал лапой паяльник
Сообщения: 392
Зарегистрирован: Сб дек 12, 2009 02:15:45

Сообщение neon-f »

извини, сильно кнопки не рассматривал :oops:
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

Сейчас пялился в листинг с программой и прочитал до кучи описание работы DS1307, но так и не въехал в чём фокус с переходом через 00:00. Сначала, когда на часах выскочило F7, подумал, что это 23 в шестнадцатиричной системе, а когда увидел утром вместо 5 часов 62 и сейчас вместо 19 часов 44, не знаю что и подумать, логики как-то не прослеживается, кроме того, что показания часов убывают, как в таймере. Может попробовать сравнить листинг от Mega8, управление DS1307 должно быть аналогично. Посмотрим, что часы нарисуют сегодня при переходе через 00:00 и какие цифры к тому времени будут в разряде часов.
Мне казалось, я бегу полем
На не чующих травы лапах…
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

Секоторое время назад собрал я для знакомых часы на мега8 и семисегментниках 2,3 дюйма. Через некоторое время хозяйка часов пожаловалась, что индикаторах вместо часов абракадабра из букв и цифр. Забрал я их домой и дома у меня поломку я так и не нашел. Целую неделю "шли как часы". Вернул хозяйке и глюки вернулись, предложил перенести их в другую комнату. Глюки исчезли, но начали появляться при включении телевизора возле которого они стояли.

Вот такая история.

Barbudas, у Вас часы вначале работали от аккумулятора, а затем возле платы появился блок питания и глюки начались.

Я правильно понял?
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

tipoya писал(а):Уважаемый Danko мною замечена ошибка в работе часов при положительной коррекции хода.
Наблюдается остановка даты. Насколько я понимаю, коррекция происходит в промежутке 23.59-00.00 простым добавлением секунд и DS1307 не видит перехода через 00.00 и как результат остановка даты.
Вполне возможно.

Я хочу переделать корректировку хода. Хочу добавить отслеживание корректировки на случай если во время корректировки вырубили свет и МК скорректировать ход часов не смог. Да и конечно перенесу корректировку с межсуточного промежутка на другое время.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

Уважаемый 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.
Вложения
20.JPG
(13.3 КБ) 1133 скачивания
Мне казалось, я бегу полем
На не чующих травы лапах…
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

И ещё. Часы сейчас стоят просто на столе, под пальмой, редом в радиусе метра ни одного электроприбора. Могу отключить БП и перейти на аккумулятор, если считаете, что дело в БП. Только почепу проявляется в 00:00, и почему всегда F7?
Мне казалось, я бегу полем
На не чующих травы лапах…
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

Barbudas писал(а):1. Можно ли к этому проекту прикрутить регулятор яркости для больших индикаторов, а то ночью их за пожар принимают :))
2. Один заказ на часики для кухни. Не секрет, что часть жизни у нас проходит там. А поэтому в функцию часов просили прикрутить простенький таймер.....
Прошивки в закромах у меня нет. Но и в текущую (на мега16) добавить пару функций большого труда не составит.

Вечером программу (прошивку) для мега16 еще раз пересмотрю и погоняю в протеусе.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

Спосибо, Danko, буду ждать результат.
Мне казалось, я бегу полем
На не чующих травы лапах…
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

Сегодня попробую залить новую прошивку. Вчера, когда на часах должно быть 00:00, часы показывали 49:00, ушёл спать. В 5 утра часы снова показывали 62:00. Тут уже логика не прослеживается. Переустановил часы через SET, батарейку не вынимал, корректировал только показание часов, причём, как только нажал +, показания часов обнулились. Установка прошла нормально. Посмотрю что будет к вечеру и испытаю новую прошивку от Danko. Спасибо ему за оперативный ответ.
Мне казалось, я бегу полем
На не чующих травы лапах…
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

Я тут наврал малость, после перехода через 00:00 выскакивает 7F. После того как утром уходя на работу настроил часы сбоев не было. Придя решил их подрессировать. Несколько раз выставлял 23:58 и наблюдал. При 23:59 начинается подмаргивание индикаторов, как будто срабатывает какой-то процесс и индикаторы горят с пропуском тактов. Затем, как положено выскакивает 0:00, а через секунды три 7F. Буду пробовать новую прошивку, но думаю, она проблему не решит.
Мне казалось, я бегу полем
На не чующих травы лапах…
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

Итак, отчёт. Залил новую прошивку с коррекцией хода на 22:59. Во-первых вывод показаний на все индикаторы оказался инверсный, это мелочи. Переход через 23:00 прошёл нормально. Как и раньше индикаторы чуть подмаргивали, потом 23:00 и часы пошли дальше. А вот дальше был фокус. Выставил на часах 23:58 и при переходе через 00:00 получил снова 7F и часы потикали дальше. Т.о. коррекция хода часов никак не влияет на появление 7F в рвзряде часов после 00. Причём, если питание отключено и часы работают на батарейке, то переход через 00:00 происходит корректно. Т.е., если питание вечером отключить и включить утром, то часы показывают время корректно. Значит в момент перехода через 00:00 Mega16 что-то прописывает в DS1307. Откуда берётся значение 7F? В десятичном это 127? А может наоборот, после 00:00 Mega16 что-то считывает не с того места?
Мне казалось, я бегу полем
На не чующих травы лапах…
Родился
Сообщения: 6
Зарегистрирован: Вт апр 06, 2010 17:35:42
Откуда: Югра

Сообщение VERON »

Приветствую Всех, тоже собираю часы на Мега16, спасибо большое Danko. Протестировать пока на ошибку описанную Barbudas-ом не могу, нет некоторых компонентов, но немножко обеспокоен, слежу за темой!
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

VERON, для беспокойства нет оснований.

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. Рассказ нечаянного революционера"
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

Danko, извини,но обе прошивки к часам совсем не подходят - нет привязки к сегментам. Пробовал заливать обе, вместо запято сегмент b мигает. Сегодня мне уже это не побороть, надо к завтрашней поезке приготовиться, а вечером по приезду попытаюсь скорректировать привязку сегментов под свои часы и проверить прошивку. На всякий случай прикрепляю прошивку которая крутится в часах сейчас. Для тех кто не в теме, поясняю, это прошивка для Mega16 с 10 транзисторными ключами на разряды (4LED 2,3" и 2х3LED 1") и ULN на сегменты. Схему выкладывал ранее.
Вложения
star pr.rar
Старая прошивка
(6.49 КБ) 314 скачиваний
Мне казалось, я бегу полем
На не чующих травы лапах…
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

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

#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? Или это не обязательно?
Мне казалось, я бегу полем
На не чующих травы лапах…
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

От количества версий немного запутался у кого какая схема, а точнее как привязаны сегменты.
В принципе есть два варианта.

вариант 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. Рассказ нечаянного революционера"
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Ср дек 23, 2009 10:52:30
Откуда: Средний Урал

Сообщение Barbudas »

Спасибо Danko, просто я наверное вчера тормозил после командировки. Сегодня попытаюсь подогнать прошивку и попробовать, как с работы приду.
Мне казалось, я бегу полем
На не чующих травы лапах…
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

Часы на мега8.
Новых функций не добавлял.
Перенес коррекцию с 23:59 на 22:59.
Ну и еще кое-где подправил для стабильности и надежности.
Вложения
Clock-Term-Calendar-Alarm_LED_2010-04-09_e.zip
(82.98 КБ) 436 скачиваний
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Ответить

Вернуться в «AVR»