Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
А можно поточнее?
Показания встают либо на место одного датчика либо на место другого ?
или вообще куда угодно? т.е. на любое место "экрана"
Показания встают либо на место одного датчика либо на место другого ?
или вообще куда угодно? т.е. на любое место "экрана"
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Danko писал(а):А можно поточнее?
Показания встают либо на место одного датчика либо на место другого ?
или вообще куда угодно? т.е. на любое место "экрана"
Доброго времени суток.
Показания встают либо на место одного датчика, либо на место другого. Переделывал скины, угадать не получилось.
Можешь сделать лучше? Сделай!
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Отрублю один датчик и посмотрю.
Будут изменения в коде отпишусь.
Данил.
Будут изменения в коде отпишусь.
Данил.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
m169 писал(а):... Показания температуры, встают куда угодно...
На одном экземпляре часов, около пол года один датчик всегда с номером 1, и всегда на месте.
Для повторения ошибки сообщите более детально, когда при каких обстоятельствах переставляется?
После отключения/включения, после подключения/отключения второго, перезагрузки и т.п.? В общем,
чем больше деталей сообщите, тем скорее будет результат.
Жизнь - цепь, а мелочи в ней звенья. Нельзя звену не придавать значения!
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Danko писал(а):Отрублю один датчик и посмотрю.
Будут изменения в коде отпишусь.
Данил.
Доброго времени суток.
Берётся стандартный скин, один датчик смонтирован на плате. Смотрим, где прописались показания, переделываем скин и удивляемся, показания опять в другом месте. Если прописать в скине одно место, то проблем нет.
Можешь сделать лучше? Сделай!
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
координаты каждого информационного поля (будь то время или дата или ...) хранятся в EEPROM памяти микроконтроллера и это не зависит ни от скина ни от языка скина.
приведу кусок кодав devices хранится количество датчиков найденных при включении часов
часы должны работать и при одном датчике и при отсутствии датчиков вообще.
После прошивке сделайте верификацию содержимого EEPROM.
А перед прошивкой Вы наверняка делаете полное стирание памяти МК.
приведу кусок кода
Код: Выделить всё
// показать темп.первого датчика в указанных координатах
if (... && (devices > 0)) {
...
}
// показать темп.второго датчика в указанных координатах
if (... && (devices > 1)) {
...
}часы должны работать и при одном датчике и при отсутствии датчиков вообще.
После прошивке сделайте верификацию содержимого EEPROM.
А перед прошивкой Вы наверняка делаете полное стирание памяти МК.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Danko писал(а):координаты каждого информационного поля (будь то время или дата или ...) хранятся в EEPROM памяти микроконтроллера и это не зависит ни от скина ни от языка скина.
приведу кусок кодав devices хранится количество датчиков найденных при включении часовКод: Выделить всё
// показать темп.первого датчика в указанных координатах
if (... && (devices > 0)) {
...
}
// показать темп.второго датчика в указанных координатах
if (... && (devices > 1)) {
...
}
часы должны работать и при одном датчике и при отсутствии датчиков вообще.
После прошивке сделайте верификацию содержимого EEPROM.
А перед прошивкой Вы наверняка делаете полное стирание памяти МК.
Доброго времени суток.
Часы работают как с одним датчиком, так и с двумя. Но подключив оба датчика и все, настроив, отключаем один датчик. Выключаем питание. Включаем питание. С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).
Можешь сделать лучше? Сделай!
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
m169 писал(а):...С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).
В скинах, по умолчанию, которые идут с программой SkinEdit датчик №1 - улица. Не обязательно, просто как рекомендация: При редактировании скинов, учесть, что датчик, который будет подключен постоянно рано или поздно (перезагрузка, пропадания питания, e.t.c.) получит номер 1! Соответственно его расположение физическое приписывать туда же. При подключении второго датчика, если вдруг они поменяются местами в меню предусмотрен пункт "Номер датчика", где их можно поменять местами. Если у Вас датчик один и ему присвоен номер 1 то сдвинуть его с места сложновато.
Жизнь - цепь, а мелочи в ней звенья. Нельзя звену не придавать значения!
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Вот теперь я понял, что за эксперименты Вы проводите с часами. А я считал, что у Вас всего один датчик.m169 писал(а):Доброго времени суток.
Часы работают как с одним датчиком, так и с двумя. Но подключив оба датчика и все, настроив, отключаем один датчик. Выключаем питание. Включаем питание. С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).
Николай уже все пояснил, а я от себя могу добавить, что поиск датчиком производится при включении (перезагрузке) часов и если будет найден один датчик пункт меню "номер датчика" будет неактивен (или попросту он исчезнет). И даже если при наличии двух датчиков через пункт меню Вы их поменяли местами, то при удалении одного после перезагрузки единственный датчик который принудительно был выставлен вторым программой будет установлен первым. И если в результате это у пользователя возникают неудобства, то для этого и была придумана программа редактор скинов.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Danko писал(а):Вот теперь я понял, что за эксперименты Вы проводите с часами. А я считал, что у Вас всего один датчик.m169 писал(а):Доброго времени суток.
Часы работают как с одним датчиком, так и с двумя. Но подключив оба датчика и все, настроив, отключаем один датчик. Выключаем питание. Включаем питание. С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).
Николай уже все пояснил, а я от себя могу добавить, что поиск датчиком производится при включении (перезагрузке) часов и если будет найден один датчик пункт меню "номер датчика" будет неактивен (или попросту он исчезнет). И даже если при наличии двух датчиков через пункт меню Вы их поменяли местами, то при удалении одного после перезагрузки единственный датчик который принудительно был выставлен вторым программой будет установлен первым. И если в результате это у пользователя возникают неудобства, то для этого и была придумана программа редактор скинов.
Доброго времени суток.
Я рад, что мы поняли друг друга. Редактором скинов, не каждый раз удается угадать какой датчик куда встаёт, да и муторное это дело. Желательно решить этот вопрос программно, через меню пользователя.
Есть ещё одно замечание. Индикация активных будильников.
Я предлагаю отображать не количество включенных будильников в день, а количество оставшихся активных будильников на данный момент времени, но при нажатии кнопки (отображение количества включенных будильников) пусть отображается количество включенных будильников.
Можешь сделать лучше? Сделай!
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
NickNI писал(а):m169 писал(а):...С вероятностью в 50% показания поменяются местами (датчик, который показывал дом, будет показывать улицу).
В скинах, по умолчанию, которые идут с программой SkinEdit датчик №1 - улица. Не обязательно, просто как рекомендация: При редактировании скинов, учесть, что датчик, который будет подключен постоянно рано или поздно (перезагрузка, пропадания питания, e.t.c.) получит номер 1! Соответственно его расположение физическое приписывать туда же. При подключении второго датчика, если вдруг они поменяются местами в меню предусмотрен пункт "Номер датчика", где их можно поменять местами. Если у Вас датчик один и ему присвоен номер 1 то сдвинуть его с места сложновато.
Доброго времени суток.
Уважаемый Николай, а Вы сами это проверяли? Я проверял. Результат ноль.
Можешь сделать лучше? Сделай!
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
m169 писал(а):Уважаемый Николай, а Вы сами это проверяли? Я проверял. Результат ноль.
А еще точнее, тогда, когда было принято решение
не отображать пункт меню смены датчиков если датчик один. Вы сомневаетесь?
Давайте попробуем решить проблему...
Откорректировал скин для русского языка под первый датчик - комнатный. Если есть желание проверяйте.
Для чистоты, желательно скачать файл hex для русского языка из приведенного выше ресурса,
чтобы быть уверенным что используете последнюю версию.
После прошивки проверите на соответствие моему предыдущему сообщению.
Предупреждая Ваш вопрос, о дате eep файла, отвечу сразу: Я использую украинский язык в часах.
Жизнь - цепь, а мелочи в ней звенья. Нельзя звену не придавать значения!
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
NickNI писал(а):m169 писал(а):Уважаемый Николай, а Вы сами это проверяли? Я проверял. Результат ноль.
Да! Последний раз вчера. Первый примерно в марте месяце за 4 месяца до публикации статьи тут.
А еще точнее, тогда, когда было принято решение
не отображать пункт меню смены датчиков если датчик один. Вы сомневаетесь?
Давайте попробуем решить проблему...
Откорректировал скин для русского языка под первый датчик - комнатный. Если есть желание проверяйте.
Для чистоты, желательно скачать файл hex для русского языка из приведенного выше ресурса,
чтобы быть уверенным что используете последнюю версию.
После прошивки проверите на соответствие моему предыдущему сообщению.
Предупреждая Ваш вопрос, о дате eep файла, отвечу сразу: Я использую украинский язык в часах.
Доброго времени суток.
Залил ваши файлы, всё встало на свои места. Высылаю папку с файлами которые я использовал.
- Вложения
-
- старая прошивка.rar
- (13.68 КБ) 370 скачиваний
Можешь сделать лучше? Сделай!
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
m169 писал(а):Залил ваши файлы, всё встало на свои места...
Отлично!
Тогда в SkinEdit ставите возле записи "Дом" датчик #1 и не важно что там, для примера, -10. Если в процессе эксплуатации подключите второй и датчики поменяются местами, то поменяете в меню. Если один отключите, то достаточно выключить/включить и впаяный снова будет отображать квартиру. Я подкорректировал Ваш eep. Можете его использовать, все должно быть хорошо...
- Вложения
-
- ru_eep1.zip
- (605 байт) 295 скачиваний
Жизнь - цепь, а мелочи в ней звенья. Нельзя звену не придавать значения!
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
NickNI писал(а):m169 писал(а):Залил ваши файлы, всё встало на свои места...
Отлично!Повторюсь: У Вас один датчик "прикручен" намертво к часам и Вы предполагаете использовать его, чаще всего, один.
Тогда в SkinEdit ставите возле записи "Дом" датчик #1 и не важно что там, для примера, -10. Если в процессе эксплуатации подключите второй и датчики поменяются местами, то поменяете в меню. Если один отключите, то достаточно выключить/включить и впаяный снова будет отображать квартиру. Я подкорректировал Ваш eep. Можете его использовать, все должно быть хорошо...
Доброго времени суток.
Это лечение симптома, а болезнь осталась.
Файлы *.hex одинаковы. Поэтому проверял *.eep. После правки в редакторе скинов, температура одиночного датчика встаёт не корректно.
Можешь сделать лучше? Сделай!
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
И опять я ничего не могу понять.
У меня в часах два датчика. №1 - улица, № 2 - квартира. В меню датчики местами не менял. Скин нарисован для улицы - датч.№1 (-10 С), для квартиры - датч.№2 (+22 С)
1. Отключаю питание.
2. Отключаю датчик "квартира".
3. Включаю питание - на экране Уличный датчик на своем месте, на месте квартирного пусто.
4. Отключаю питание.
5. Подключаю датчик на место.
6. Включаю питание - на экране Уличный датчик на своем месте квартирный тоже.
7. Отключаю питание.
8. Отключаю датчик "улица".
9. Включаю питание - на экране Уличный датчик показывает температуру в квартире, а на месте квартирного пусто. И ЭТО НОРМАЛЬНО.
10. Отключаю питание.
11. Подключаю датчик на место.
12. Включаю питание - на экране Уличный датчик показывает температуру за окном, а квартирный соответственно в квартире.
Не могу понять, в чем проблема.
У меня в часах два датчика. №1 - улица, № 2 - квартира. В меню датчики местами не менял. Скин нарисован для улицы - датч.№1 (-10 С), для квартиры - датч.№2 (+22 С)
1. Отключаю питание.
2. Отключаю датчик "квартира".
3. Включаю питание - на экране Уличный датчик на своем месте, на месте квартирного пусто.
4. Отключаю питание.
5. Подключаю датчик на место.
6. Включаю питание - на экране Уличный датчик на своем месте квартирный тоже.
7. Отключаю питание.
8. Отключаю датчик "улица".
9. Включаю питание - на экране Уличный датчик показывает температуру в квартире, а на месте квартирного пусто. И ЭТО НОРМАЛЬНО.
10. Отключаю питание.
11. Подключаю датчик на место.
12. Включаю питание - на экране Уличный датчик показывает температуру за окном, а квартирный соответственно в квартире.
Не могу понять, в чем проблема.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
На практике проверил все скины. И стандартные и скины от m169.
Все скины отображаются правильно согласно заложенному в них интерфейсу.
И по сему дабы закрыть сей непонятный мне эксперимент проводимый m169 внесу поправки в описание устройства:
"При работе часов с одним датчиком обязательно нужно самостоятельно откорректировать скины, удалив из них второй ненужный датчик. При этом при редактировании скинов нужно учесть, что единственный датчик всегда будет первым. И не стоит обращать внимание, что в редакторе скинов у первого датчика показания температуры отрицательные. Это сделано только для визуального различия датчиков при редактировании."
Все скины отображаются правильно согласно заложенному в них интерфейсу.
И по сему дабы закрыть сей непонятный мне эксперимент проводимый m169 внесу поправки в описание устройства:
"При работе часов с одним датчиком обязательно нужно самостоятельно откорректировать скины, удалив из них второй ненужный датчик. При этом при редактировании скинов нужно учесть, что единственный датчик всегда будет первым. И не стоит обращать внимание, что в редакторе скинов у первого датчика показания температуры отрицательные. Это сделано только для визуального различия датчиков при редактировании."
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
- nicolasomsk
- Встал на лапы
- Сообщения: 148
- Зарегистрирован: Вс окт 23, 2011 13:27:09
- Откуда: Россия. Омск
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Господа, извиняюсь дико за оффтоп, в этой ветке тема просто поднималась про OLED дисплей от Winstar. Так же проблема с русскими символами. Дело в том что я пытаюсь постигать азы программирования в графической среде Flowcode и "классическое" программирование мне пока чуждо. Если можно, взгляните на С код, который мне сгенерила программа (он под LCD Winstar 16*2) Все выходные на эксперименты убил уже:(((
Если что, то эт на тиньке 2313
Если что, то эт на тиньке 2313
- Вложения
-
- display.c
- (10.67 КБ) 628 скачиваний
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
С Flowcode вообще не знаком.
А что если добавить строку FCD_LCDDisplay0_Command(0x2A);
это не поможет?
А что если добавить строку FCD_LCDDisplay0_Command(0x2A);
Код: Выделить всё
//Макрос компонента
//Макрос компонента: LCDDisplay(0)::Старт
FCD_LCDDisplay0_Start();
FCD_LCDDisplay0_Command(0x2A);
//Макрос компонента
//Макрос компонента: LCDDisplay(0)::Вывод строки("±pe!")
FCD_LCDDisplay0_PrintString("±pe!",7);Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
- nicolasomsk
- Встал на лапы
- Сообщения: 148
- Зарегистрирован: Вс окт 23, 2011 13:27:09
- Откуда: Россия. Омск
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Спасибо!
- Вложения
-
- DSCN0497.jpg
- (137.26 КБ) 1048 скачиваний