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

Обсуждаем контроллеры компании Atmel.
Kazemir
Открыл глаза
Сообщения: 60
Зарегистрирован: Вс апр 11, 2010 22:15:11

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

Сообщение Kazemir »

Спасибо Danko и всем за помощь!
Разобрался с адаптацией часового индикатора. Вопрос закрыт.
yurijI
Открыл глаза
Сообщения: 76
Зарегистрирован: Пт фев 23, 2007 11:48:36

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

Сообщение yurijI »

Всем доброго здравия!

это типа так?
else { if (dubldot) zpt_4 = 0b00001100; //МОРГАЕМ ДВУМЯ ТОЧКАМИ в 2-3 разряде
else zpt_4 = 0b00000100; } // ОДНА ТОЧКА в 2 разряде
или я все еще не понял? :shock:
Аватара пользователя
Ant-RG
Вымогатель припоя
Сообщения: 541
Зарегистрирован: Ср май 05, 2010 20:47:56
Откуда: Украина
Контактная информация:

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

Сообщение Ant-RG »

Я думаю что так

Код: Выделить всё

  else       { if (dubldot)  zpt_4 = 0b00001000;   // засветить точку в 3 разряде 
                         else          zpt_4 = 0b00000100; } //                 в 2 разряде

но возможно я тоже чего то недопонимаю
I'am a Rock N' Roll-Aholic
Kazemir
Открыл глаза
Сообщения: 60
Зарегистрирован: Вс апр 11, 2010 22:15:11

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

Сообщение Kazemir »

yurijI & Ant-RG!
Не совсем так. (Да простит меня Danko !)

else { if (dubldot) zpt_4 = 0b00001100; //МОРГАЕМ ДВУМЯ ТОЧКАМИ в 2-3 разрядах
else zpt_4 = 0b00000001; } // засветить точку в 0 разряде

Далее примерно строка 1185 (примерно, потому что имеется некоторое разхождение с нумерацией Danko, почему то)

if(des)zpt_4=0b00001000; // засветить точку в третьем разряде (это нижняя точка в разделителе между часами и минутами)
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

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

Сообщение Danko »

чем более гибкая программа тем более больше заморочек в ней.

Итак:

Код: Выделить всё

else       { if (dubldot)  zpt_4 = 0b00000010;   // засветить точку в 1 разряде
             else          zpt_4 = 0b00000001; } //                 в 0 разряде
означает, что если неактивна функция ДвухТочекРазделителей то засветить точку в 1 разряде и напротив если эта функция активна, то засветить точку в 0 разряде к которой подпаяны светодиоды-разделители часов и минут

Все это предполагалось для часов у которых светодиоды-разделители часов и минут не привязаны к какому-либо разряду и их можно подпаять вместо точек любого разряда т.е. просто два светодиода. У Вас же светодиоды-разделители жестко привязаны к 2 и 3 разрядам (нумерация с 0), а в программе точки 2 и 3 разрядов это светодиоды горизонтальной и вертикальной черты знака плюс (так называемый пятый разряд).

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

Еще раз перечитаете на первой странице как распределены точки разрядов и для каких функций и еще загляните в файл term_mega8_88.h

Код: Выделить всё

  led_s, led_r, // выбор активных уровней на индикаторе
         hour0, // флаг индикации незначащего нуля в десятках часов
           des, // флаг точности индикации температуры (отбросить десятые градуса)
     rushechki, // "рюшечки" (плавная смена показаний индикации)
       fotorez, // регулеровка яркости с помощью фоторезистора
       dubldot, // если в часах кроме запятых есть еще точки-разделители часов и минут
     plusminus, // "пятый" разряд плюс/минус (два сегмента: горизонтальный и вертикальный)
    maxfotorez, // максимальный уровень яркости устанавливаемый пользователем (от 40 до 200)
это переменные ("флаги") которые участвуют в условиях активизации определенных функций, да и нужно учесть, что по умолчанию и по тому что чистая память EEPROM МК заполнена "1" (0xFF) то активизация функции происходит записью "0".

Еще раз разъяснил для тех кого удивляет установка фузов в МК AVR.

Приношу извинения если я кого то еще больше запутал.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
yurijI
Открыл глаза
Сообщения: 76
Зарегистрирован: Пт фев 23, 2007 11:48:36

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

Сообщение yurijI »

Danko писал(а):Приношу извинения если я кого то еще больше запутал.


:shock: АГА, вот завернул, так завернул…. :kill:

:)))
Valget
Родился
Сообщения: 15
Зарегистрирован: Пт апр 30, 2010 08:53:37

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

Сообщение Valget »

Уважаемый Danko. Я в начале декабря писал вам по поводу часов на 8mega_static. Ответил O-LED, по его совету загрузить прошивки от 28-03 и 29-04 2010г часы не оживили, так же и показывали информацию на индикаторах в инверсном режиме. Частично проблемму удалось решить, лишь загрузив программу 8mega_e. Все вроде бы работает за исключением запятой, которая горит постоянно на всех режимах, а в режиме "часы" - мигает. Оно и понятно, программа написана вами для динамической индикации. Я конечно извиняюсь (подобные мне "чайники" вам изрядно надоели), но что в этой ситуации посоветуете?
yurijI
Открыл глаза
Сообщения: 76
Зарегистрирован: Пт фев 23, 2007 11:48:36

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

Сообщение yurijI »

Здоровья вам уважаемые! :))
Вот кажись и у меня кое что вышло…
В первом архиве поправленные исходники.
Во втором описание менюшек с индикатором CA56-21GWA

p/s видео работы часиков

http://video.yandex.ru/users/yurgin777/view/22/

:idea:
Вложения
Небольшие пояснения c CA56-21GWA.rar
менюшки с индикатором CA56-21GWA
(61.48 КБ) 396 скачиваний
mega8_CA56-21GWA.rar
поправленные исходники для CA56-21GWA
(29.6 КБ) 336 скачиваний
Снимок1.png
поправки для CA56-21GWA
(51.27 КБ) 860 скачиваний
Последний раз редактировалось yurijI Пн дек 13, 2010 20:38:00, всего редактировалось 1 раз.
yurijI
Открыл глаза
Сообщения: 76
Зарегистрирован: Пт фев 23, 2007 11:48:36

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

Сообщение yurijI »

Уважаемый DANKO подскажите, пожалуйста,
а за что вот эта функция отвечает :
//----------
void dot_ON(void) {
if (dubldot) zpt_4 = 0b00000010; // засветить точку в 1 разряде
else zpt_4 = 0b00000001; // в 0 разряде
}//----------
:roll:
Аватара пользователя
foxit
Грызет канифоль
Сообщения: 262
Зарегистрирован: Пт ноя 16, 2007 00:40:17
Откуда: Украина

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

Сообщение foxit »

А можно ли организовать коррекцию часов от ПК по rs232 или от gps?
Аватара пользователя
Seal
Сверлит текстолит когтями
Сообщения: 1122
Зарегистрирован: Чт мар 05, 2009 19:51:55
Откуда: Дырасполь

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

Сообщение Seal »

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

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

Сообщение Danko »

yurijI писал(а):Уважаемый DANKO подскажите, пожалуйста,
а за что вот эта функция отвечает :
//----------
void dot_ON(void) {
if (dubldot) zpt_4 = 0b00000010; // засветить точку в 1 разряде
else zpt_4 = 0b00000001; // в 0 разряде
}//----------
:roll:

Эта функция вызывается при переходе в режим индикации времени и необходима на зажигания точки (точек). т.е. если в Ваших часах две точки как разделитель часов и минут и они подключены вместо светодиода точки 0 разряда.

foxit писал(а):А можно ли организовать коррекцию часов от ПК по rs232 или от gps?
в данных часах нет.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Аватара пользователя
foxit
Грызет канифоль
Сообщения: 262
Зарегистрирован: Пт ноя 16, 2007 00:40:17
Откуда: Украина

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

Сообщение foxit »

Danko писал(а):
foxit писал(а):А можно ли организовать коррекцию часов от ПК по rs232 или от gps?
в данных часах нет.


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

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

Сообщение Danko »

наверное стоит немного углубится в понятие коррекции времени.

1 вариант: МК через последовательный порт (или I2C, SPI, 1wire и пр.) обменивается с большим братом (ПК) информацией т.е. часы минуты и секунды устанавливаются с ПК.

2 вариант: тоже самое только обмен с GPS-модулем.

3 вариант: на вход МК внешнее устройство подает сигнал точного времени по которому на часах секунды сбрасываются в 00. Внешним устройством может быть другой МК который в свою очередь получает информацию от ПК, GPS или по 6-му сигналу радиостанции "Маяк".

Возможно еще есть варианты. Но в Данных часах первые два варианта неприменимы.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
dem-vr
Встал на лапы
Сообщения: 97
Зарегистрирован: Пн ноя 27, 2006 20:58:02

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

Сообщение dem-vr »

Еще есть варианты!
Отказаться от кнопок на входе АЦП и поставить приемник ИК-сигнала от пульта RC5,
на котором кнопок намного больше. Китайцы делают дешевые мини-игрушки для детей с такими пультами.
Это упрощает саму конструкцию и повышает надежность - меньше трогаешь=меньше ломается!.
Аватара пользователя
odesasha
Прорезались зубы
Сообщения: 237
Зарегистрирован: Пт фев 12, 2010 14:02:22
Откуда: Одесса

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

Сообщение odesasha »

Danko писал(а):наверное стоит немного углубится в понятие коррекции времени.

1 вариант: МК через последовательный порт (или I2C, SPI, 1wire и пр.) обменивается с большим братом (ПК) информацией т.е. часы минуты и секунды устанавливаются с ПК.
или по 6-му сигналу радиостанции "Маяк".

Большой брат (ПК) сам точен и требует такого же ( ряд скоростей обмена по СОМ портам ) от всех . USB - не исключение .Нужны кварцы 3.68 ,7.35 ( не помню точно , но типа этого ) на UART , и 12 Мгц для USB . Будет проблема с ногами .
Применение I2C , 1Ware для обмена с компом потребует резидентного ПО , а это ,похоже , -тема для отдельного форума .
А "Маяк" в Одессе давно не слышно - забит шумами .
Последний раз редактировалось odesasha Пт дек 17, 2010 09:21:31, всего редактировалось 1 раз.
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

Сообщение Gordon Shumway »

Доброго времени суток, уважаемые Коты, Кошки и Котята !
Всех с наступающим праздником !

Уважаемый автор ! Спасибо за ваш проект - вчера попробовал на макетке - все супер ! Как раз искал что-то подобное. Сегодня буду плату рисовать.

К сожалению не обойтись без вопросов:

1.Что означают понятия "статика" и "динамика" ? Прошивка "статика" показывает на экране непонятные символы, одинаковые на всех знакоместах. "Динамика" заработала сразу и без проблем.

2.Будет ли нормально работать Mega8L ? Есть в TQFP-корпусе...

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

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

Сообщение Danko »

Gordon Shumway писал(а):1.Что означают понятия "статика" и "динамика"
Статическая индикация и динамическая индикация. Каждая прошивка предназначена для определенной схемы. "Динамика" - для схемы с динамической индикацией, ну и "статика" - соответственно для статической индикации.

Gordon Shumway писал(а):2.Будет ли нормально работать Mega8L ? Есть в TQFP-корпусе...
ДА. Сам собирал именно на таком камне.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

Сообщение Gordon Shumway »

Доброго времени суток !

Назрел еще один вопрос:

* пятый разряд (знак температуры), расположенный слева от первого - это два сегмента
горизонтальный и вертикальный которые образуют знак "минус" и знак "плюс".
Вместо точки 3-го разряда подключается горизонтальный сегмент, а вместо точки 4-го - вертикальный.


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

Спасибо заранее за ответ.
С уважением,
Алексей.
Аватара пользователя
ВНН
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Сб дек 13, 2008 09:03:43
Откуда: г.Советская Гавань

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

Сообщение ВНН »

Имеется 4 точки 2 используются как раздемитель ( : и , ) отаются свободными еще 2 тобиш вертикальная и горизонтальная черта в знаке температуры - или +
Я тоже белый и пушистый и также как и Вы ловлю мышей.
С уважением ВНН.
Ответить

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