Часы Super Clock

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

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


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

Сообщение Lion_A »

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

Сообщение skorkin »

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

Сообщение Lion_A »

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

Сообщение 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 КБ) 218 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Сообщения: 40
Зарегистрирован: Сб июн 28, 2014 13:41:59
Откуда: Харьков

Сообщение Andiss »

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

Сообщение fin45 »

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

Добавлено after 13 minutes 36 seconds:
fin45 писал(а): вот такая информация у меня отображается на матрицах https://youtu.be/zY3p927cGAE
Что то не так. Название "Super Clock" должно нормально пробегать.
даже не знаю что подумать, первый раз такое, обычно все самоделки запускаются с первого раза. Буду искать ошибки или припой может где повис на плате. Может матрицы, распиновка вроде одинаковая
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Сообщение dadigor »

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

Сообщение fin45 »

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

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

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

Сообщение Lion_A »

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

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

Сообщение fin45 »

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

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

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

Сообщение dadigor »

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

Сообщение fin45 »

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

Сообщение dadigor »

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

Сообщение fin45 »

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

Добавлено after 1 hour 58 minutes 41 second:
fin45 писал(а):......Сейчас DHT22 DS18B20 подключать буду.
подключил, температура(внеш, внутр), влажность и давление отображается, буду ждать часы
Вымогатель припоя
Аватара пользователя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Сообщение dadigor »

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

Сообщение 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
  }
}
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср фев 01, 2017 06:26:17

Сообщение fin45 »

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

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

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

Сообщение 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 раз.
О технике чего спорить-то, давайте попробуем.
Ответить

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