Pavel » 02 сен 2011, 20:12
И длительность сделать можно.
Для этого нужно сначала вот этот кусок программы
if (hh[2]!=hh[3] || mm[2]!=mm[3])
{if (hht==hh[2] && mmt==mm[2]) porta.f2=1; //Включение второй нагрузки
if (hht==hh[3] && mmt==mm[3]) porta.f2=0;} //Выключение второй нагрузки
заменить на этот
if (mm[3]!=0)
{if (hht==hh[2] && mmt==mm[2] && sst==0) porta.f2=1; //Включение второй нагрузки
if (hht==hh[2] && mmt==mm[2] && sst==mm[3]) porta.f2=0;} //Выключение второй нагрузки
То есть как видно, час и минута выключения совпадают с часом и минутой включения, а секунда выключения в данном случае будет равна заданной вами (переменная mm[3]).
А для установки секунды выключения нужно вот этот кусок программы
bytetostr(hh[aa-6],text);
if (hh[aa-6]<10) text[1]='0';
lcd_chr(2,1,text[1]);
lcd_chr(2,2,text[2]);
bytetostr(mm[aa-6],text);
if (mm[aa-6]<10) text[1]='0';
lcd_chr(2,3,':');
lcd_chr(2,4,text[1]);
lcd_chr(2,5,text[2]);
lcd_chr(2,6,':');
lcd_chr(2,7,'0');
lcd_chr(2,8,'0');
заменить на этот
if (aa!=9) //Установки таймеров кроме выключения реле 2
{
bytetostr(hh[aa-6],text);
if (hh[aa-6]<10) text[1]='0';
lcd_chr(2,1,text[1]);
lcd_chr(2,2,text[2]);
bytetostr(mm[aa-6],text);
if (mm[aa-6]<10) text[1]='0';
lcd_chr(2,3,':');
lcd_chr(2,4,text[1]);
lcd_chr(2,5,text[2]);
lcd_chr(2,6,':');
lcd_chr(2,7,'0');
lcd_chr(2,8,'0');
}
else
{
bytetostr(hh[aa-7],text);
if (hh[aa-7]<10) text[1]='0';
lcd_chr(2,1,text[1]); //Вывод времени включения Реле 2 (часы)
lcd_chr(2,2,text[2]); //Вывод времени включения Реле 2 (часы)
bytetostr(mm[aa-7],text);
if (mm[aa-7]<10) text[1]='0';
lcd_chr(2,3,':');
lcd_chr(2,4,text[1]); //Вывод времени включения Реле 2 (минуты)
lcd_chr(2,5,text[2]); //Вывод времени включения Реле 2 (минуты)
lcd_chr(2,6,':');
bytetostr(mm[aa-6],text);
if (mm[aa-6]<10) text[1]='0';
lcd_chr(2,7,text[1]); //Вывод времени выключения Реле 2 (секунды)
lcd_chr(2,8,text[2]); //Вывод времени выключения Реле 2 (секунды)
}
Установка секунды будет при нажатии кнопки установки минуты, а переменная hh[3] будет не задействована.