Дни недели.
Дни недели.
Решил в свои часики добавить показ дней недели.Реализовать решил через сдвиговый регистр 74НС595.Схема такова:7 светодиодов подключаем к модулю часов через сдвиговый регистр. Каждый день загорается свой светодиод.Вроде ничего сложного,но довести до ума не получается.Пробовал два варианта. Первый вариант: просто подключил к часам сдвиговый регистр. Неделю работало нормально,а с субботы на воскресенье все светодиоды погасли. Начал разбираться.В FLProg зашел в настройки часов,а там стоит вместо воскресенья суббота.Пробую другие дни,просто устанавливаю время 23ч.58мин.,жду пару минут,все работает,день переключается.Доходит до субботы,конец,дальше день не переключается.Хотя время идет нормально.[spoiler]
Попробовал второй вариант.Подключил счетчик.Здесь неважно какой день установлен в часах,после загрузки скетча загорается понедельник.
[spoiler] [/spoiler]
Подскажите,где собака зарылась!
[/spoiler]Попробовал второй вариант.Подключил счетчик.Здесь неважно какой день установлен в часах,после загрузки скетча загорается понедельник.
[spoiler] [/spoiler]
Подскажите,где собака зарылась!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Дни недели.
[ref]mgr[/ref],
Вот что говорит код
[spoiler][/spoiler]
Обратите внимание на цифры case и вызов функции в строке 3
Вот что говорит код

[spoiler]
Код: Выделить всё
//Плата:1
get3231Date(0x68, &_RTC1);
_RTC1_GetTime1_StrOut = ( _dayNameFromRealTimeClockNumber(_RTC1.weekday));
// получаем день недели строкой функцией
_RTC1_GetTime1_DowOut = _RTC1.weekday;
// получаем день недели числом
//Сама функция получения строки из числа
String _dayNameFromRealTimeClockNumber(byte value)
{
switch (value) {
case 1: // для 1
return String("Mon"); // вернём, по буржуйски, понедельник
break;
case 2: // для 2
return String("Tue"); // вторник и т.д.
break;
case 3:
return String("Wed");
break;
case 4:
return String("Thu");
break;
case 5:
return String("Fri");
break;
case 6:
return String("Sat");
break;
case 7:
return String("Sun");
break;
}
return String("");
Обратите внимание на цифры case и вызов функции в строке 3

мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Дни недели.
[ref=#ff8000]Sancho[/ref], я сегодня код посмотреть не смогу к сожалению, но на выходе "Dow" (Byte) - 1 будет в воскресение.
Сегодня четверг - у меня на выходе пятёрка.
А вы наверное про стринговую говорите?
Сегодня четверг - у меня на выходе пятёрка.
А вы наверное про стринговую говорите?
Dgordg
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Дни недели.
Странно - у меня сегодня, в четверг, 4mgr писал(а): 18 апр 2019, 11:43 Сегодня четверг - у меня на выходе пятёрка.
А вы наверное про стринговую говорите?

[spoiler] [/spoiler]
[ref]hatul[/ref], или перед селектором прибавьте единицу, или добавьте ещё один выход Q7 и Q0 освободите.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Дни недели.
[ref=#ff8000]Sancho[/ref], Я сегодня всё равно не смогу посмотреть ничего. А вы можете проверить такое, у меня 3231 синхронизируются по NTP (и день в том числе) встроенному в flprog, может быть из за этого у меня так?
Ну по крайней мере не с 0-я начинается, как сделано у hatul, с чего пост то начался.
Ну по крайней мере не с 0-я начинается, как сделано у hatul, с чего пост то начался.
Dgordg
Дни недели.
Спасибо всем кто откликнулся.Приношу свои извинения,что долго не отвечал. Дело в том,что моя работа никаким образом не связана с компьютером,поэтому проверить советы,и отвечать я могу только вечером.
Да,с Q0. А как иначе? Если Q0 не подцеплен к сдв.регистру,то просто один день не горит.
Не совсем понял.Если Вы имели в виду так Просто дни стали показывать на день больше,но один день все равно не горит.
Так? Тоже самое.Первый день не горит.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Дни недели.
[ref]hatul[/ref], У Вас дисплей есть, типа 1602?
Если да - загрузите проект из поста выше.
Насчёт прибавить 1 - ошибся, нужно в Вашем случае отнять.
Но для начала проект попробуйте
Если да - загрузите проект из поста выше.
Насчёт прибавить 1 - ошибся, нужно в Вашем случае отнять.
Но для начала проект попробуйте

мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Дни недели.
Нет. Да и дело то я думаю не в дисплее. Вот нашел пост с похожей проблемой [scroll]при установке часов через соответствующее меню, воскресенье записывается как нулевой день недели, а при компиляции рабочего проекта - как седьмой. При выводе значений строкой параметр "D" не отображает воскресенье. Проблема незначительная, можно подправлять значение case sun на нуль. Заметил в последней версии, в 2.5 работало без проблем. В описании блока версии 3.0.3 воскресенье обозначено седьмым днем, а в 2.5 - нулевым.[/scroll]
К автору поста обратится не могу.Он последний раз был на форуме пол года назад.
Буду разбираться.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей