Часы Super Clock

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Lion_A
Вымогатель припоя
Сообщения: 519
Зарегистрирован: Сб ноя 10, 2007 23:01:18
Откуда: Тула

Re: Часы Super Clock

Сообщение Lion_A »

Я бы сделал. Но дата перехода плавает от года к году. Как ее вычислять?
Аватара пользователя
skorkin
Прорезались зубы
Сообщения: 213
Зарегистрирован: Пн сен 19, 2011 22:56:01
Откуда: Харьков

Re: Часы Super Clock

Сообщение skorkin »

Lion_A писал(а):дата перехода плавает... Как ее вычислять?

Предлагаю не вычислять, а просто забить в прошивку таблицу дат: каждое последнее воскресенье марта и октября, скажем на 20 лет вперед. И по ней переставлять. А по прошествию этого времени, если не пропадет интерес к данному проекту, выпустить новую прошивку с обновленной таблицей дат.
Оно конечно так, ежели как что. Не потому что дескать, но все-таки конечно. А случись такое дело - вот тебе и пожалуйста!
Lion_A
Вымогатель припоя
Сообщения: 519
Зарегистрирован: Сб ноя 10, 2007 23:01:18
Откуда: Тула

Re: Часы Super Clock

Сообщение Lion_A »

Подумаю.
Часы уже перевели, так что время есть.
Lion_A
Вымогатель припоя
Сообщения: 519
Зарегистрирован: Сб ноя 10, 2007 23:01:18
Откуда: Тула

Re: Часы Super Clock

Сообщение Lion_A »

Сделал автоматический перевод часов.
Файл interface.h

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

//Раскомментировать для автоперехода на летнее время
//#define AUTOMATIC_SUMMER_TIME

По умолчанию отключен. Время переводится последнее воскресенье марта и октября в 3:00.
Особо не тестил, так что просьба проверить в разных варияциях.
Добавил датчик движения на PB2 (выв. 42). Высокий уровень включает дисплей, после перепада на низкий запускается таймер до выключения.
Файл mSensor.h

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

//задержка до выключения при использовании датчика движения
#define DELAY_TO_OFF_LED    300   //сек.

Порт подтянут внутренней подтяжкой, так что в схеме ничего менять не нужно.
Вложения
m32_3.8.7z
(586.97 КБ) 215 скачиваний
Andiss
Открыл глаза
Сообщения: 40
Зарегистрирован: Сб июн 28, 2014 13:41:59
Откуда: Харьков

Re: Часы Super Clock

Сообщение Andiss »

Lion_A
Спасибо, перевод времени работает, никаких глюков не заметил.
fin45
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср фев 01, 2017 06:26:17

Re: Часы Super Clock

Сообщение fin45 »

Lion_A писал(а):Нет, в 3.7 ничего подтягивать не нужно. ..................

Добавлено after 13 minutes 36 seconds:
fin45 писал(а):вот такая информация у меня отображается на матрицах https://youtu.be/zY3p927cGAE

Что то не так. Название "Super Clock" должно нормально пробегать.


даже не знаю что подумать, первый раз такое, обычно все самоделки запускаются с первого раза. Буду искать ошибки или припой может где повис на плате. Может матрицы, распиновка вроде одинаковая
Аватара пользователя
dadigor
Вымогатель припоя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Re: Часы Super Clock

Сообщение dadigor »

fin45
1. Видно, что строка в принципе бежит, т.е. продвигается засветка, причем слева направо (наверное перевернута плата). Сначала приходит слева на пустой индикатор, в конце уходит вправо, очищая индикатор. Хороший признак. ))
2. Информация внутри светящейся колонки меняется, что говорит о ее продвижении, тоже хорошо.
3. Работают одноименные колонки (вертикали 2 и 5, считая на видео слева) во всех матрицах, интервал между ними три (т.е. каждая четвертая). Тут надо порыться, может быть здесь ключ к разгадке?
Мне кажется по прикидке, что такое может получиться, если повернуть на 180 матрицы при монтаже. Но выпаивать и проверять не буду, попробуйте сами.
О технике чего спорить-то, давайте попробуем.
fin45
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср фев 01, 2017 06:26:17

Re: Часы Super Clock

Сообщение fin45 »

подумал, и решил перевернуть матрицы на 180 гр. и все стало на место https://youtu.be/k-RaWGGIJcg.
Сейчас из датчиков запаян только BMP-180, а это значит, что пока не запаяю DS3231 я буду видеть только ошибку "квадратной шины".
Lion_A, я правильно мыслю?

P.S. пока писал сообщение что, и как. dadigor в это время дал вариант верный.

Всем спасибо! Собираю далее Ваши супер часики.
Lion_A
Вымогатель припоя
Сообщения: 519
Зарегистрирован: Сб ноя 10, 2007 23:01:18
Откуда: Тула

Re: Часы Super Clock

Сообщение Lion_A »

Да, все верно.
Аватара пользователя
dadigor
Вымогатель припоя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Re: Часы Super Clock

Сообщение dadigor »

Можно попробовать забить заглушки: в функции ds1307_init - закомментарить все, кроме настройки порта и прерывания

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

void ds1307_init(void)
{

// External Interrupt(s) initialization
// INT0: Off
// INT1: On
// INT1 Mode: Any change
// INT2: Off
GICR|=0x80;
MCUCR|=0x04;
GIFR|=0x80;

//настроим INT1 на вход и подтянем к плюсу
INT_DDR &= ~(1<<INT_INPUT);
INT_PORT |= (1<<INT_INPUT);
/*
#ifdef DS3231
twi_start();
twi_slaveAddress_W(0b1101000);  //передача адреса ds3231 + бит записи
twi_write(0x0E);                //записываем адрес регистра управления
twi_write(0x00);                //разрешим меандр с частотой 1Гц на SQW
twi_write(0x08);                //разрешим выход 32кГц
twi_stop();
#else
twi_start();
twi_slaveAddress_W(0b1101000);  //передача адреса ds1307 + бит записи
twi_write(0x07);                //записываем адрес регистра управления
twi_write(0b10010000);          //разрешим меандр с частотой 1Гц на SQW

twi_stop();
*/
}
#endif

}

в ds1307_get_time и ds1307_get_date закомментарить все тело и вставить

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

*sec = 0x00;             //считываем секунды
*min = 0x00;             //считываем минуты
*hour = 0x00;          //считываем часы

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

*date = 0x00;            //считываем число
*month = 0x00;           //считываем месяц
*year = 0x00;            //считываем год


Давно в этих кодах разбирался, уже не помню, нужно ли прерывание от часов для их хода, или оно только для будильника. Попробуйте, если не терпится посмотреть, может быть запустится. Вместо нулей можно забить что-то значащее, оно только меняться не будет естстно ))
О технике чего спорить-то, давайте попробуем.
fin45
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср фев 01, 2017 06:26:17

Re: Часы Super Clock

Сообщение fin45 »

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

P.S. первый раз выписал часовой модуль у китайца, он заказ не отправил( прошло 2 недели, открыл спор)второй раз в другого китайца.

Изображение
Аватара пользователя
dadigor
Вымогатель припоя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Re: Часы Super Clock

Сообщение dadigor »

Попробуйте прошивку без 3231
No_RTC.rar
(70.07 КБ) 134 скачивания
О технике чего спорить-то, давайте попробуем.
fin45
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср фев 01, 2017 06:26:17

Re: Часы Super Clock

Сообщение fin45 »

dadigor, спасибо за помощь! Залил прошивку No_RTC , увидел много нового. https://youtu.be/-N5iR98hEsk
Аватара пользователя
dadigor
Вымогатель припоя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Re: Часы Super Clock

Сообщение dadigor »

Это конечно совсем неправильная прошивка, могут вылезти всякие бяки )) так что особо ей не доверяйте, сделана только для Вас - для проскакивания первой ошибки I2C и просмотра кое-какого функционала. К примеру, обязательно будут проблемы при попытке установки будильника ((
Кстати, непонятно что там со средней матрицей - неполная засветка (например цифра 7 в давлении, ноль в температуре)?
О технике чего спорить-то, давайте попробуем.
fin45
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср фев 01, 2017 06:26:17

Re: Часы Super Clock

Сообщение fin45 »

......"со средней матрицей", да заметил но свалил на прошивку она ведь тестовая, а может контакт плохой в разъеме. Пока на матрицах останавливаться не буду, заказал матрицы 60*60. Сейчас DHT22 DS18B20 подключать буду.

Добавлено after 1 hour 58 minutes 41 second:
fin45 писал(а):......Сейчас DHT22 DS18B20 подключать буду.

подключил, температура(внеш, внутр), влажность и давление отображается, буду ждать часы
Аватара пользователя
dadigor
Вымогатель припоя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Re: Часы Super Clock

Сообщение dadigor »

заголовок проходит - значит не контакт
О технике чего спорить-то, давайте попробуем.
upavlenko
Родился
Сообщения: 10
Зарегистрирован: Пт июн 29, 2012 11:19:32

Re: Часы Super Clock

Сообщение upavlenko »

Какая МС часов ds1307 или ds3231 можно определить программно.

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


#define false 0
#define true  1
static unsigned char _ds1307 = false;
static unsigned char _ds3231 = false;
unsigned char ds1307(void) { return _ds1307; }
unsigned char ds3231(void) { return _ds3231; }

void rtc_Autodetect(void)                             //  Autodetection
{
unsigned char temp1;
unsigned char temp2;
  temp1 = rtc_read(0x11);                             //  сохранение ячеек
  temp2 = rtc_read(0x12);                             //    0x11 и 0x12  ds1307
  rtc_write(0xAA, 0x11);                              // пишем AAh
  rtc_write(0x55, 0x12);                              //  пишем 55h
  // Регистры температуры ds3231 работают только на чтение (read-only), записать их нельзя.
  if (rtc_read(0x11) == 0xAA && rtc_read(0x12) == 0x55)
  {
    _ds1307 = true;                                   // это ds1307
    rtc_write(temp1, 0x11);                           // restore
    rtc_write(temp2, 0x12);
  }
  else
  {
    _ds3231 = true;                                   // это ds3231
  }
}
fin45
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср фев 01, 2017 06:26:17

Re: Часы Super Clock

Сообщение fin45 »

dadigor, если возможно выложи отредактированный файлик ds1307.c из исходника "No_RTC".
почемучка
Встал на лапы
Сообщения: 118
Зарегистрирован: Пт ноя 13, 2009 01:27:57

Re: Часы Super Clock

Сообщение почемучка »

Lion_A писал(а):Добавил датчик движения на PB2 (выв. 42).


Спасибо за Д.Д. Датчик уже в пути. Скоро буду тестить. По мне даже очень нужная функция.
Аватара пользователя
dadigor
Вымогатель припоя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Re: Часы Super Clock

Сообщение dadigor »

upavlenko Точно! 0х55 и 0хАА академично, считается, что ошибка менее вероятна при последовательной передаче данных, а также при случайной инициализации ячеек памяти. Но я в свое время писал туда 0х12 и 0х34, что потом и вычитывал. Это было, когда я еще работал и мы заменили 1307 на 3231 в новых версиях разрабатываемых контроллеров. В принципе такое распознавание не очень нужно, если пишешь для себя, сам компилируешь и знаешь что где у тебя установлено, но для универсальной прошивки очень удобно.

fin45 Прилагаю по Вашей просьбе мою варварскую правку авторского файла, надеюсь он не обидится.На самом деле там ничего нового по отношению к моему посту чуть выше. (Ср апр 05, 2017 19:09:19)

attachment удален по Вашей же просьбе ))
Последний раз редактировалось dadigor Пт апр 07, 2017 19:25:46, всего редактировалось 1 раз.
О технике чего спорить-то, давайте попробуем.
Ответить

Вернуться в «Статьи»