Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Алгоритм поливки.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Jenya7
Есть электрический кран. Его надо открывать\закрывать.
Всего можно запрограмировать 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, но сейчас не могу найти ссылку. что странно поиск на гугл не дает каких либо вразумительных результатов.
MrYuran
оно?
Во всяком случае, рыбы довольны sm.gif
Jenya7
Цитата(MrYuran @ Jan 12 2016, 17:01) *
оно?
Во всяком случае, рыбы довольны sm.gif

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

У готовых таймеров экранчик мелкий, и не очень информативный (зато с иконками), при использовании знакосинтезирующих или графических модулей удобство и информативность можно улучшить (в меру своих дизайнерских способностей).
Jenya7
Цитата(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;
        
    }
}

но что то мне это не нравиться.
Огурцов
огурцы, в отличие от человеков, не бухают по пятницам и не болеют по понедельникам
т.о. недельный таймер им не нужен
раз уж вы не анализируете влажность почвы и не прогнозируете осадки, более чем достаточно механического таймера на сутки с разрешением 15 минут, за 300 рублей
днем поливать вредно, используйте раннее утро или вечер
Jenya7
Цитата(Огурцов @ Jan 13 2016, 03:48) *
огурцы, в отличие от человеков, не бухают по пятницам и не болеют по понедельникам
т.о. недельный таймер им не нужен
раз уж вы не анализируете влажность почвы и не прогнозируете осадки, более чем достаточно механического таймера на сутки с разрешением 15 минут, за 300 рублей
днем поливать вредно, используйте раннее утро или вечер

заказчик хочет иметь возможность управлять краном каждый день. что и когда он польет я честно говоря не знаю. даже не интересовался. одно знаю что он в поливке наверно опытней чем я в контролерах.
arhiv6
Цитата(Jenya7 @ Jan 12 2016, 17:58) *
когда то встречал планировщик задач на C, но сейчас не могу найти ссылку. что странно поиск на гугл не дает каких либо вразумительных результатов.

Тут уже обсуждали планировщики для МК. Скорее всего Вам подойдёт AVR-Crontab. Сам я им не пользовался, но похоже он реализует функционал планировщика cron.
Jenya7
Цитата(arhiv6 @ Jan 13 2016, 14:06) *
Тут уже обсуждали планировщики для МК. Скорее всего Вам подойдёт AVR-Crontab. Сам я им не пользовался, но похоже он реализует функционал планировщика cron.

спасибо. в AVR-Crontab много лишнего для меня. но интересные идеи там есть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.