Цитата(rx3apf @ Jan 12 2016, 17:33)

В принципе, задача сводится к использованию готового программируемого недельного таймера (их навалом разных, но, возможно, будут проблемы с объемом расписания). Не устраивает готовый - посмотреть несколько описаний программирования от готовых изделий и скопировать самый удобный вариант реализации.
У готовых таймеров экранчик мелкий, и не очень информативный (зато с иконками), при использовании знакосинтезирующих или графических модулей удобство и информативность можно улучшить (в меру своих дизайнерских способностей).
готовый не пойдет. у меня все есть RTC и силовые выходы. надо только написать логику.
у меня получилось что то такое
Код
//check if the present day is active
if (flashParam.solDay&(1<<rtc.rtcDayOfWeek))
{
//run programs for the day
for (prog_mum = 0; prog_mum < 4; prog_mum++)
SOLENOID_RunSol(prog_mum);
}
void SOLENOID_RunSol(uint32_t prog_mum)
{
switch (solParam[prog_mum].solState)
{
case IDLE:
solParam[prog_mum].solState = START;
break;
case START:
if (solParam[prog_mum].solStartHour == rtc.rtcHour && solParam[prog_mum].solStartMinute >= rtc.rtcMin)
{
SolenoidOn();
solParam[prog_mum].solState = STOP;
}
break;
case STOP:
if ( (solParam[prog_mum].solStopHour == rtc.rtcHour && solParam[prog_mum].solStopMinute >= rtc.rtcMin))
{
SolenoidOff();
solParam[prog_mum].solState = IDLE;
}
break;
}
}
но что то мне это не нравиться.