реклама на сайте
подробности

 
 
> Алгоритм поливки.
Jenya7
сообщение Jan 12 2016, 11:58
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Есть электрический кран. Его надо открывать\закрывать.
Всего можно запрограмировать 4 открытия\закрытия на каждый день.
К примеру
Понедельник:
Open1 12:00
Close1 12:30
Open2 14:00
Close2 15:00
Open3 19:00
Close3 22:00
…………………..
Среда:
Open1 9:00
Close1 11:00
Open2 14:00
Close2 14:15
……………………….
и так далее

вот сижу ломаю голову как это покрасивее претворить в жизнь.
у меня есть ощущение что все уже написано до нас. работают же поливочные контроллеры как то.
может кто нибудь решал что нибудь подобное?

когда то встречал планировщик задач на C, но сейчас не могу найти ссылку. что странно поиск на гугл не дает каких либо вразумительных результатов.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rx3apf
сообщение Jan 12 2016, 12:33
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



В принципе, задача сводится к использованию готового программируемого недельного таймера (их навалом разных, но, возможно, будут проблемы с объемом расписания). Не устраивает готовый - посмотреть несколько описаний программирования от готовых изделий и скопировать самый удобный вариант реализации.

У готовых таймеров экранчик мелкий, и не очень информативный (зато с иконками), при использовании знакосинтезирующих или графических модулей удобство и информативность можно улучшить (в меру своих дизайнерских способностей).

Сообщение отредактировал rx3apf - Jan 12 2016, 12:34
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 12 2016, 13:00
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(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;
        
    }
}

но что то мне это не нравиться.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 19:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016