А-а-а, значит просто символа ':' нет в тамошнем шрифте (или у него другой код). Можно посмотреть и поковыряться - найти его там. Если хотите, расскажу как.
- но сейчас времени уже нету, не профильная специальность кодить( Хотя и интересно.
Я так по станкам ЧПУ лажу в основном. А вот ардуино это как 2 шаг к STM взял, чтоб можно было доработки всячесские делать так как то что выходит на ардуино уже радует ибо применение есть(для меня)
Нормально отображают, т.е. цифры стоят на своих местах.
Там по ссылке видео ролики... Можно все нюансы увидеть. Я применил DS3231 вот такой
- уменьшил размер тем самым. В даташит вижу, что можно сделать Alarm 2 и автор наглядно сделал Alarm 1 в соответствии с текстом даташит, но я не догоняю, как ... Идею автора я не понимаю до конца с Alarm 1
Может, найдется добрая душа, подскажет ... правильно ли я делаю Alarm 2...
//Subroutine to set alarm 2
void set_alarm2()
{
// flags define what calendar component to be checked against the current time in order
// to trigger the alarm - see datasheet
// A2M2 (minutes) (0 to enable, 1 to disable)
// A2M3 (hour) (0 to enable, 1 to disable)
// A2M4 (day) (0 to enable, 1 to disable)
// DY/DT (dayofweek == 1/dayofmonth == 0)
byte flags[4] = { 0, 0, 1, 1 }; //Set alarm to trigger every 24 hours on time match
// set Alarm2
DS3231_set_a2(wake_MINUTE, wake_HOUR, 0, flags); //Set alarm 2 RTC registers
}
//Subroutine to get alarm 2
void get_alarm2()
{
uint8_t n[3];
uint8_t t[3]; //second,minute,hour,day
uint8_t f[4]; // flags
uint8_t i;
Wire.beginTransmission(DS3231_I2C_ADDR);
Wire.write(DS3231_ALARM2_ADDR);
Wire.endTransmission();
Wire.requestFrom(DS3231_I2C_ADDR, 3);
for (i = 0; i <= 2; i++) {
n[i] = Wire.read();
f[i] = (n[i] & 0x80) >> 7; // 0x80 -> 128
t[i] = bcdtodec(n[i] & 0x7F); // 0x7F -> 127
}
f[3] = (n[2] & 0x40) >> 6; // 0x40 - 64
t[2] = bcdtodec(n[2] & 0x3F); // 0x3F - 63
wake_MINUTE = t[0];
wake_HOUR = t[1];
}
Попробуйте добавить в начало строки 4 слово volatile. А там посмотрим. Да кстати, прерывание должно приходить раз в минуту, зачем Вы так часто перчатете (200 мс в строке 151). Поставьте там вместо 200, например, 30000ul - полминуты - нормально.
Евгений. все нормально, часы идут точно, проблем нет с подключением- паралельно висит мой скетч, там показывает все ок.
С вашим вариантом не. Тоисть я не могу сказать точно ведь выводить инфу о минутах в скетче нету и я не допишу ибо это же без библиотеки все. "прямыми" командами точно мозгов не хватит.
У меня модуль 3231.
"по-минутное прерывание устанавливаем"- тоисть это делается не один раз? Я думал что подобные установки записываются в регистр один раз.
Получается что оно работает только в вашем скетче?
Ежеминутное прерывание в моём скетче устанавливается функцией EnableMinuteInterrupt. Она вызывается один раз из функции clockInit, а та, в свою очереь, из setup.
символ ':' как-то особо отрабатывает.
я об этом.
фоткать уже не хочу но с этим символом мусор есть как раз между показаниями
А-а-а, значит просто символа ':' нет в тамошнем шрифте (или у него другой код). Можно посмотреть и поковыряться - найти его там. Если хотите, расскажу как.
Спасибо огромное УЖЕ за уделенное внимаение!
- но сейчас времени уже нету, не профильная специальность кодить( Хотя и интересно.
Я так по станкам ЧПУ лажу в основном. А вот ардуино это как 2 шаг к STM взял, чтоб можно было доработки всячесские делать так как то что выходит на ардуино уже радует ибо применение есть(для меня)
ну и вконце темы наверное уже рабочий код, может кто-то тоже будет искать по форуму вывод часов на OLED с нолем и попадет на данную тему.
Всем привет.
Мне понравились вот эти часы http://www.instructables.com/id/DS3231-OLED-clock-with-2-button-menu-setting-and-t/ Возможно, кому-то этот вариант пригодиться...
Ходят точно. Убрал анимацию, увеличил цифры... Вполне доволен. Хотел сделать второй alarm, но так и застрял с alarm 2 :) опыта маловато...
как они отображают начало часа?
к прирмеру 12:6:15
или
12:06:15?
Минуты и секунды с лидирующими нулями, а часы с лидирующим пробелом
Нормально отображают, т.е. цифры стоят на своих местах.
Там по ссылке видео ролики... Можно все нюансы увидеть. Я применил DS3231 вот такой
- уменьшил размер тем самым. В даташит вижу, что можно сделать Alarm 2 и автор наглядно сделал Alarm 1 в соответствии с текстом даташит, но я не догоняю, как ... Идею автора я не понимаю до конца с Alarm 1
Может, найдется добрая душа, подскажет ... правильно ли я делаю Alarm 2...
Спасибо. Всем удачи.
Вроде правильно.
Евгений, вопрос по старому скетчу (пост 31) :
пробую вот сейчас посмотреть как он работает, добавил флаг туда где вы указали, но смотрю в порт, ничего не меняется. Не растет.
SQW к 2 ноге. A4 и A5 стандартно. строки в twi.h добавил и поместил в папку скетча
Поправьте пожалуйста- что не так делаю?
Попробуйте добавить в начало строки 4 слово volatile. А там посмотрим. Да кстати, прерывание должно приходить раз в минуту, зачем Вы так часто перчатете (200 мс в строке 151). Поставьте там вместо 200, например, 30000ul - полминуты - нормально.
Не считает.
volatile это для того чтоб переменную внести в особую область памяти - для прерываний одним словом?
А вообще как в 3231 по-минутный сигнал установить? Железно никак?
Вы помню говорили что в этом модуле поминутный а 1302 по-секундный.
Стоп, у Вас-то что? Какие часы. Если 3231, так мы поминутное перывание и устанавливаем.
У Вас вообще, часы работают? Время меняется? Может Вы подключики не так или там ещё чего.
Евгений. все нормально, часы идут точно, проблем нет с подключением- паралельно висит мой скетч, там показывает все ок.
С вашим вариантом не. Тоисть я не могу сказать точно ведь выводить инфу о минутах в скетче нету и я не допишу ибо это же без библиотеки все. "прямыми" командами точно мозгов не хватит.
У меня модуль 3231.
"по-минутное прерывание устанавливаем"- тоисть это делается не один раз? Я думал что подобные установки записываются в регистр один раз.
Получается что оно работает только в вашем скетче?
Да, нет, ну, я не знаю, что Вы запускаете.
Ежеминутное прерывание в моём скетче устанавливается функцией EnableMinuteInterrupt. Она вызывается один раз из функции clockInit, а та, в свою очереь, из setup.
а как насчет
Получается 00 и есть раз в секунду? потом отсчитать второй ногой (прерыванием) 60 раз и сделать свои действия, так?
Хотите делайте так. Я сделал чтобы там импульс раз в минуту шёл. Сделано это через будильник.
осталось понять как выставить регистры, даташит читаю пока что но ... )))
Удачи!
читать ТО-ЕСТЬ вместо - тоисть