Страница 23 из 34

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Чт дек 22, 2011 23:13:45
Danko
А можно поточнее?
Показания встают либо на место одного датчика либо на место другого ?

или вообще куда угодно? т.е. на любое место "экрана"

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Пт дек 23, 2011 08:23:20
m169
Danko писал(а):А можно поточнее?
Показания встают либо на место одного датчика либо на место другого ?

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

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Пт дек 23, 2011 09:44:37
Danko
Отрублю один датчик и посмотрю.

Будут изменения в коде отпишусь.

Данил.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Пт дек 23, 2011 13:00:47
NickNI
m169 писал(а):... Показания температуры, встают куда угодно...
На одном экземпляре часов, около пол года один датчик всегда с номером 1, и всегда на месте. :dont_know:
Для повторения ошибки сообщите более детально, когда при каких обстоятельствах переставляется?
После отключения/включения, после подключения/отключения второго, перезагрузки и т.п.? В общем,
чем больше деталей сообщите, тем скорее будет результат. :)

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Пт дек 23, 2011 15:41:59
m169
Danko писал(а):Отрублю один датчик и посмотрю.

Будут изменения в коде отпишусь.

Данил.
Доброго времени суток.
Берётся стандартный скин, один датчик смонтирован на плате. Смотрим, где прописались показания, переделываем скин и удивляемся, показания опять в другом месте. Если прописать в скине одно место, то проблем нет.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Пт дек 23, 2011 16:06:08
Danko
координаты каждого информационного поля (будь то время или дата или ...) хранятся в EEPROM памяти микроконтроллера и это не зависит ни от скина ни от языка скина.

приведу кусок кода

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

		//  показать темп.первого датчика в указанных координатах
		if (... && (devices > 0)) {
                      ...
		}

		//  показать темп.второго датчика в указанных координатах
		if (... && (devices > 1)) {
                      ...
		}
в devices хранится количество датчиков найденных при включении часов

часы должны работать и при одном датчике и при отсутствии датчиков вообще.

После прошивке сделайте верификацию содержимого EEPROM.

А перед прошивкой Вы наверняка делаете полное стирание памяти МК.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Пт дек 23, 2011 18:53:51
m169
Danko писал(а):координаты каждого информационного поля (будь то время или дата или ...) хранятся в EEPROM памяти микроконтроллера и это не зависит ни от скина ни от языка скина.

приведу кусок кода

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

		//  показать темп.первого датчика в указанных координатах
		if (... && (devices > 0)) {
                      ...
		}

		//  показать темп.второго датчика в указанных координатах
		if (... && (devices > 1)) {
                      ...
		}
в devices хранится количество датчиков найденных при включении часов

часы должны работать и при одном датчике и при отсутствии датчиков вообще.

После прошивке сделайте верификацию содержимого EEPROM.

А перед прошивкой Вы наверняка делаете полное стирание памяти МК.
Доброго времени суток.
Часы работают как с одним датчиком, так и с двумя. Но подключив оба датчика и все, настроив, отключаем один датчик. Выключаем питание. Включаем питание. С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 00:15:06
NickNI
m169 писал(а):...С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).
В скинах, по умолчанию, которые идут с программой SkinEdit датчик №1 - улица. Не обязательно, просто как рекомендация: При редактировании скинов, учесть, что датчик, который будет подключен постоянно рано или поздно (перезагрузка, пропадания питания, e.t.c.) получит номер 1! Соответственно его расположение физическое приписывать туда же. При подключении второго датчика, если вдруг они поменяются местами в меню предусмотрен пункт "Номер датчика", где их можно поменять местами. Если у Вас датчик один и ему присвоен номер 1 то сдвинуть его с места сложновато.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 01:22:47
Danko
m169 писал(а):Доброго времени суток.
Часы работают как с одним датчиком, так и с двумя. Но подключив оба датчика и все, настроив, отключаем один датчик. Выключаем питание. Включаем питание. С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).
Вот теперь я понял, что за эксперименты Вы проводите с часами. А я считал, что у Вас всего один датчик.

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

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 11:28:06
m169
Danko писал(а):
m169 писал(а):Доброго времени суток.
Часы работают как с одним датчиком, так и с двумя. Но подключив оба датчика и все, настроив, отключаем один датчик. Выключаем питание. Включаем питание. С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).
Вот теперь я понял, что за эксперименты Вы проводите с часами. А я считал, что у Вас всего один датчик.

Николай уже все пояснил, а я от себя могу добавить, что поиск датчиком производится при включении (перезагрузке) часов и если будет найден один датчик пункт меню "номер датчика" будет неактивен (или попросту он исчезнет). И даже если при наличии двух датчиков через пункт меню Вы их поменяли местами, то при удалении одного после перезагрузки единственный датчик который принудительно был выставлен вторым программой будет установлен первым. И если в результате это у пользователя возникают неудобства, то для этого и была придумана программа редактор скинов.
Доброго времени суток.
Я рад, что мы поняли друг друга. Редактором скинов, не каждый раз удается угадать какой датчик куда встаёт, да и муторное это дело. Желательно решить этот вопрос программно, через меню пользователя.
Есть ещё одно замечание. Индикация активных будильников.
Я предлагаю отображать не количество включенных будильников в день, а количество оставшихся активных будильников на данный момент времени, но при нажатии кнопки (отображение количества включенных будильников) пусть отображается количество включенных будильников.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 11:55:46
m169
NickNI писал(а):
m169 писал(а):...С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).
В скинах, по умолчанию, которые идут с программой SkinEdit датчик №1 - улица. Не обязательно, просто как рекомендация: При редактировании скинов, учесть, что датчик, который будет подключен постоянно рано или поздно (перезагрузка, пропадания питания, e.t.c.) получит номер 1! Соответственно его расположение физическое приписывать туда же. При подключении второго датчика, если вдруг они поменяются местами в меню предусмотрен пункт "Номер датчика", где их можно поменять местами. Если у Вас датчик один и ему присвоен номер 1 то сдвинуть его с места сложновато.
Доброго времени суток.
Уважаемый Николай, а Вы сами это проверяли? Я проверял. Результат ноль.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 14:34:07
NickNI
m169 писал(а):Уважаемый Николай, а Вы сами это проверяли? Я проверял. Результат ноль.
:)) Да! Последний раз вчера. Первый примерно в марте месяце за 4 месяца до публикации статьи тут.
А еще точнее, тогда, когда было принято решение
не отображать пункт меню смены датчиков если датчик один. Вы сомневаетесь?

Давайте попробуем решить проблему...
Откорректировал скин для русского языка под первый датчик - комнатный. Если есть желание проверяйте.
Для чистоты, желательно скачать файл hex для русского языка из приведенного выше ресурса,
чтобы быть уверенным что используете последнюю версию.
После прошивки проверите на соответствие моему предыдущему сообщению.
eep_ru.zip
(569 байт) 339 скачиваний
Предупреждая Ваш вопрос, о дате eep файла, отвечу сразу: Я использую украинский язык в часах.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 15:26:33
m169
NickNI писал(а):
m169 писал(а):Уважаемый Николай, а Вы сами это проверяли? Я проверял. Результат ноль.
:)) Да! Последний раз вчера. Первый примерно в марте месяце за 4 месяца до публикации статьи тут.
А еще точнее, тогда, когда было принято решение
не отображать пункт меню смены датчиков если датчик один. Вы сомневаетесь?

Давайте попробуем решить проблему...
Откорректировал скин для русского языка под первый датчик - комнатный. Если есть желание проверяйте.
Для чистоты, желательно скачать файл hex для русского языка из приведенного выше ресурса,
чтобы быть уверенным что используете последнюю версию.
После прошивки проверите на соответствие моему предыдущему сообщению.
Вложение eep_ru.zip больше недоступно
Предупреждая Ваш вопрос, о дате eep файла, отвечу сразу: Я использую украинский язык в часах.
Доброго времени суток.
Залил ваши файлы, всё встало на свои места. Высылаю папку с файлами которые я использовал.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 15:55:50
NickNI
m169 писал(а): Залил ваши файлы, всё встало на свои места...
Отлично! :) Повторюсь: У Вас один датчик "прикручен" намертво к часам и Вы предполагаете использовать его, чаще всего, один.
Тогда в SkinEdit ставите возле записи "Дом" датчик #1 и не важно что там, для примера, -10. Если в процессе эксплуатации подключите второй и датчики поменяются местами, то поменяете в меню. Если один отключите, то достаточно выключить/включить и впаяный снова будет отображать квартиру. Я подкорректировал Ваш eep. Можете его использовать, все должно быть хорошо...

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 17:13:39
m169
NickNI писал(а):
m169 писал(а): Залил ваши файлы, всё встало на свои места...
Отлично! :) Повторюсь: У Вас один датчик "прикручен" намертво к часам и Вы предполагаете использовать его, чаще всего, один.
Тогда в SkinEdit ставите возле записи "Дом" датчик #1 и не важно что там, для примера, -10. Если в процессе эксплуатации подключите второй и датчики поменяются местами, то поменяете в меню. Если один отключите, то достаточно выключить/включить и впаяный снова будет отображать квартиру. Я подкорректировал Ваш eep. Можете его использовать, все должно быть хорошо...
Доброго времени суток.
Это лечение симптома, а болезнь осталась.
Файлы *.hex одинаковы. Поэтому проверял *.eep. После правки в редакторе скинов, температура одиночного датчика встаёт не корректно.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 19:01:38
Danko
И опять я ничего не могу понять.
У меня в часах два датчика. №1 - улица, № 2 - квартира. В меню датчики местами не менял. Скин нарисован для улицы - датч.№1 (-10 С), для квартиры - датч.№2 (+22 С)

1. Отключаю питание.
2. Отключаю датчик "квартира".
3. Включаю питание - на экране Уличный датчик на своем месте, на месте квартирного пусто.

4. Отключаю питание.
5. Подключаю датчик на место.
6. Включаю питание - на экране Уличный датчик на своем месте квартирный тоже.

7. Отключаю питание.
8. Отключаю датчик "улица".
9. Включаю питание - на экране Уличный датчик показывает температуру в квартире, а на месте квартирного пусто. И ЭТО НОРМАЛЬНО.

10. Отключаю питание.
11. Подключаю датчик на место.
12. Включаю питание - на экране Уличный датчик показывает температуру за окном, а квартирный соответственно в квартире.

Не могу понять, в чем проблема.

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс дек 25, 2011 21:22:57
Danko
На практике проверил все скины. И стандартные и скины от m169.

Все скины отображаются правильно согласно заложенному в них интерфейсу.

И по сему дабы закрыть сей непонятный мне эксперимент проводимый m169 внесу поправки в описание устройства:

"При работе часов с одним датчиком обязательно нужно самостоятельно откорректировать скины, удалив из них второй ненужный датчик. При этом при редактировании скинов нужно учесть, что единственный датчик всегда будет первым. И не стоит обращать внимание, что в редакторе скинов у первого датчика показания температуры отрицательные. Это сделано только для визуального различия датчиков при редактировании."

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Сб янв 21, 2012 21:18:48
nicolasomsk
Господа, извиняюсь дико за оффтоп, в этой ветке тема просто поднималась про OLED дисплей от Winstar. Так же проблема с русскими символами. Дело в том что я пытаюсь постигать азы программирования в графической среде Flowcode и "классическое" программирование мне пока чуждо. Если можно, взгляните на С код, который мне сгенерила программа (он под LCD Winstar 16*2) Все выходные на эксперименты убил уже:(((
Если что, то эт на тиньке 2313

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс янв 22, 2012 04:57:08
Danko
С Flowcode вообще не знаком.

А что если добавить строку FCD_LCDDisplay0_Command(0x2A);

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

//Макрос компонента
	//Макрос компонента: LCDDisplay(0)::Старт
	FCD_LCDDisplay0_Start();

	FCD_LCDDisplay0_Command(0x2A);

	//Макрос компонента
	//Макрос компонента: LCDDisplay(0)::Вывод строки("±pe!")
	FCD_LCDDisplay0_PrintString("±pe!",7);
это не поможет?

Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)

Добавлено: Вс янв 22, 2012 08:51:18
nicolasomsk
Спасибо!