Управлять портом по заданном времени.
|
|
ivan_fd |
Дата: Ср, 07.10.2009, 17:38 | Сообщение # 1 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Привет. Что то не могу придумать как это сделать. Нужно допустим в 8.00 включить нагрузку, а в 19.00 выключить. Если написать Code If vklhour = realhour And vklmin = realmin Then High port...... EndIf If vyklhour = realhour And realmin = cmin Then Low port..... EndIf то проблем нету. А если, допустим, я включу питание контроллера, когда время уже прошло, то нагрузка не включится. (Часы на отдельной микросхеме) То есть мне нужно что бы в определенном промежутке времени нагрузка была включена, а в другом выключена. Как бы это сделать. Спасибо!
|
|
|
|
slavauk |
Дата: Ср, 07.10.2009, 20:08 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
64
Замечания:
±
На сайте с 14.03.2009
Статус:
Offline
|
Может так If realhour >= vklhour And realhour <= vyklhour and realmin >= vklmin and realmin <= cmin Then High port...... EndIf If realhour >= vyklhour And realmin >= cmin Then Low port..... EndIf
|
|
|
|
ivan_fd |
Дата: Ср, 07.10.2009, 22:52 | Сообщение # 3 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Спасибо! Почти так. Code If realhour >= vklhour And realhour <= vyklhour and realmin >= vklmin and realmin < vyklmin Then High eepled EndIf If realhour >= vyklhour And realmin >= vyklmin Then Low eepled EndIf Вот сдесь realmin <= cmin Then равно лишнее.
|
|
|
|
Dmitry |
Дата: Чт, 08.10.2009, 23:47 | Сообщение # 4 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Ага. А теперь представим, что время работы с 22.00 до 6 утра, а устройство включили в 00.30
|
|
|
|
DAlexV |
Дата: Пт, 09.10.2009, 10:16 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Quote (Dmitry) Ага. А теперь представим, что время работы с 22.00 до 6 утра, а устройство включили в 00.30 Только хотел это сказать, а уже опередили. Quote (ivan_fd) Часы на отдельной микросхеме На сколько я помню во всех этих микрухах есть будильник, и не один. Почему бы не использовать их ???? Там как раз данная проблема вроде решена
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
ivan_fd |
Дата: Пт, 09.10.2009, 10:58 | Сообщение # 6 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Да про это я не подумал. В DS1302 вроде нету будильников. В принципе мне нужно включать нагрузку только днем, но все равно нужно сделать как положено. Будем думать.
|
|
|
|
slavauk |
Дата: Пт, 09.10.2009, 13:29 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
64
Замечания:
±
На сайте с 14.03.2009
Статус:
Offline
|
DS1302 кроме часов имеют календарь,включая число,месяц и год. Та-что изменив немного математику данный алгоритм применить всетаки можно.
|
|
|
|
ivan_fd |
Дата: Пн, 12.10.2009, 21:41 | Сообщение # 8 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Это я в курсе, что есть календарь. В принципе можно что то думать. Добавлено (09.10.2009, 21.46.24) --------------------------------------------- Да, что то ничего у меня не получается, уже мозги кипят. Добавлено (12.10.2009, 21.41.34) --------------------------------------------- Ребята, сдаюсь, помогите хоть какой то идеей, а то ничего не могу придумать.
Сообщение отредактировал
ivan_fd - Пт, 09.10.2009, 21:47
|
|
|
|
Dmitry |
Дата: Пн, 12.10.2009, 23:28 | Сообщение # 9 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Вань! (ничего что на ты?) Несколько тем назад ты успешно победил динамическую индикацию вкупе с ds18B20. Причем использовал прерывание на асме. Это вообще-то на порядок сложнее, чем нынешняя задача. А сейчас такое очучение, что с этого логина пишет другой человек. Чегой-то ты перемудрил малость. Вот мое решение аналогичной задачи, именно с освещением. Но я проверяю только часы, мне минуты не нужны. С минутами будет чуть больше условий. И без всяких дат. Code 'OsvOn - час включения 'OsvOff - час выключения 'hour - текущий час
SetOsv: if OsvOff >= OsvOn then if (OsvOn <= hour) and (OsvOff > hour) then high OSV else Low OSV endif else if (hour >= OsvOn) or (hour < OsvOff) then High OSV else Low OSV endif endif а на микрочипе тебя чичас порвут за такой вопрос
|
|
|
|
ivan_fd |
Дата: Вт, 13.10.2009, 11:45 | Сообщение # 10 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Спасибо, счас посмотрим. Может и перемудрил, что то меня зациклило. Решал задачи и посложнее, правда на Делфи, так как программирую не нем, а здесь ну не знаю. А на микрочипе, пока что не порвали. Добавлено (13.10.2009, 11.45.42) --------------------------------------------- Dmitry, А ты знаешь (с твоего позволения тоже на ты ) почти точно так же как и ты писал, только еще и с минутами начал мудрить, и ............ P.S: Приходишь после работы, голова дымит, и тут еще это, ну это я так ......
Сообщение отредактировал
ivan_fd - Вт, 13.10.2009, 12:07
|
|
|
|
Dmitry |
Дата: Вт, 13.10.2009, 22:36 | Сообщение # 11 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Quote (ivan_fd) правда на Делфи, так как программирую нa нем, Привет, коллега
|
|
|
|
ivan_fd |
Дата: Ср, 14.10.2009, 15:02 | Сообщение # 12 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Quote (Dmitry) Привет, коллега smile Привет!
|
|
|
|
rdx75 |
Дата: Чт, 15.10.2009, 01:16 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
8
Замечания:
±
На сайте с 29.08.2009
Статус:
Offline
|
Мой вариант проги: 'если текущее время больше-ровно времени включения будильника, то включить светодиод. 'если текущее время больше времени выключения будильника - выключить светодиод hour 'текущее врвемя - соответственно часы min ' минуты sec 'и секунды hour_on 'время настройки будильника - часы min_on 'минуты sec_on 'и секунды когда он должен включиться hour_off 'время настройки будильника - часы min_off 'минуты sec_off 'и секунды когда он должен выключиться if ((hour > hour_on) or (hour = hour_on and min > min_on) or (hour = hour_on and min = min_on and sec >= sec_on)) and ((hour < hour_off) or (hour = hour_off and min < min_off) or (hour = hour_off and min = min_off and sec < sec_off)) led = 1 ... elseif led = 0 endif
Сообщение отредактировал
rdx75 - Сб, 17.10.2009, 00:43
|
|
|
|
ivan_fd |
Дата: Чт, 15.10.2009, 12:36 | Сообщение # 14 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Quote (rdx75) if (hour > hour_on) or (hour = hour_on and min > min_on) or (hour = hour_on and min = min_on and sec >= sec_on then) led = 1 ... endif Это понятно, ваш вариант, такой же как и в 3 сообщении.
|
|
|
|
rdx75 |
Дата: Сб, 17.10.2009, 00:41 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
8
Замечания:
±
На сайте с 29.08.2009
Статус:
Offline
|
Quote (ivan_fd) Это понятно, ваш вариант, такой же как и в 3 сообщении. Дополнил код, см. 13 сообщение
Сообщение отредактировал
rdx75 - Сб, 17.10.2009, 00:42
|
|
|
|