vadpi писал(а):А с помощью какой программы его открывать?
Это обычный текстовый файл. Любым текстовым редактором можно открыть (во времена пользования windows я notepad++ использовал). Любым, кроме стандартного блокнота, который не умеет нормально открывать текстовые файлы. В eeprom.h прописаны адреса всех параметров, по которым уже hex-редактором в файле eepbom_<lanb>.bin можно поменять нужные параметры.
Stail564 писал(а):А как программа различает датчики температуры?
У каждого из датчиков есть свой уникальный номер, прошитый на заводе при изготовлении. Программа осуществляет поиск всех датчиков на шине и выстраивает их "по алфавиту": датчик с меньшим номером - это всегда комнатный, с большим - наружный. Поэтому либо меняйте сами датчики местами (проще всего), либо в eeprom.bin поменяйте местами текстовые метки для них (тогда первой будет выводится наружная температура). Либо в коде поменять порядок вывода.
shura2000 писал(а):А в чужом коде разбираться очень сложно. Да еще и без русских коментов.
Правильно выбранные имена функций и переменных вполне сами по себе способны заменить комментарии. Та же функция
вывода строки температуры:
Спойлер
Код: Выделить всё
static void loadTempString(void)
{
uint8_t i;
for (i = 0; i < getDevCount(); i++) {
if (i > 0)
matrixLoadString(", ");
matrixLoadString(mkNumberString(ds18x20GetTemp(i), 4, 1, ' '));
matrixLoadStringEeprom(txtLabels[LABEL_DEGREE]);
matrixLoadStringEeprom(txtLabels[LABEL_TEMP1 + i]);
}
return;
}
Не нужно быть гением в программировании, чтобы понять, что здесь происходит. И комментарии в стиле (
a = 3; // Присваиваем a значение 3) здесь абсолютно излишни. Ну и не на русском же языке их писать, в самом деле.
P.S. Кстати, возможно, кому-то покажется интересной следующая информация. Термодатчики в проекте можно подключать двумя способами:
1. Обычное питание (как на схеме в статье) - 1 вывод на земле 3 вывод на питании, 2 вывод является входом/выходом датчика и подключается к МК, при этом нужен 4.7кОм подтягивающий резистор с неё на питание.
2. Паразитное питание - всё точно так же, только 3 вывод не на питании, а тоже на земле. В этом случае для подключения внешнего датчика достаточно двух проводов - земля и сигнал/питание.
Никаких изменений в коде не нужно, оба варианта должны работать одновременно.
P.P.S. Небольшое обновление прошивки. Новых функций нет, только оптимизации кода (уменьшен на ~200 байт размер прошивки). В ближайшие дни буду ещё заниматься оптимизацией кода, чтобы освободить место в прошивке для датчиков давления/влажности/освещённости.