levaclaus писал(а):как только эта строка попадает в основной цикл программы, перестаёт работать кнопка настройки часов. Как это связано, немогу понять.
... строка
Код: Выделить всё
temp=ds18b20_temperature(0); //читаем температуру
..работает при выключенных прерываниях. Без коренной переделки попробуйте следующее - настройте на 9-ти битное преобразование (по умолчанию оно 12-ти битное), при этом время преобразования уменьшится в 8 раз.
Что касается
Часы.rar - очень активно пользуетесь библиотечными функциями, хотя их возможности используются % на 20 - может проще написать самому? ... размер hex-файла при этом сильно уменьшится. Некоторые вещи не стоит делать "в лоб" - проявите фантазию

(все сказанное ИМХО - не правило и на Ваш вкус....)
например:
Код: Выделить всё
switch (month) //Определение максимального дня в месяце
{
case 1: maxday=31; break;
case 2: maxday=29; break;
case 3: maxday=31; break;
case 4: maxday=30; break;
case 5: maxday=31; break;
case 6: maxday=30; break;
case 7: maxday=31; break;
case 8: maxday=31; break;
case 9: maxday=30; break;
case 10: maxday=31; break;
case 11: maxday=30; break;
case 12: maxday=31; break;
}
проще написать так
Код: Выделить всё
flash char tab_maxday[12]={31,29,31,30,31,30,31,31,30,31,30,31};
.....
maxday=tab_maxday[month-1];
.. результат тот-же, но работает быстрее и занимает меньше места.