Forger 17 2 декабря, 2015 Опубликовано 2 декабря, 2015 · Жалоба Причём тут вайфай? Веб морда с тысипями кушает память, а в M0 ее кот наплакал - 8-12 кб А как вы будете подключать М0 в сеть, где будут бегать ваши TCP пакеты? Размер занимаемой озу стеком TCP/IP сильно зависит от числа одновременных одкрытых соедений, других поддерживаемых протоколов, в М0 ни у кого нет RMI интерфейса, чтобы подключить эзернет, но есть spi и uart как минимум, к ним пожно подключать внешние крохотные модули с реализаванных внутри них TCP/IP. В этом случае даже 8-битный адруино справиться с задачей на ура. Я для примера предложил самый бюджетный и простой вариант - вайфай ESP. которая несколько меньше линукса,Ну, это все меняет :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgen2 0 2 декабря, 2015 Опубликовано 2 декабря, 2015 · Жалоба А какой минимальный шаг времени нужен? Поддержка дат нужна? Или просто "запуск задачи через час", "запуск задачи раз в сутки"? Если второй вариант, можно сделать свой планировщик, взяв за основу этот. Умеет периодический запуск задач. отложенный запуск. О, спасибо. Минимализм, как и хотелось. И можно и RTC прикручивать. Это невозможно на физическом уровне. Ваш мк будет управлять физикой с двумя состояниями - вкл-выкл, ну может быть ещё шим - но у него тоже пишется единственное значение. Значит все эти глюки необходимо разрулить ещё до фактической установки будильника. Функция - будильник каждую секунду - задаётся с некорректными значениями неиспользуемых разрядов будильника. Например каждую секунду - число секунд, а минуты, часы дни - года FFFF. Тогда при установке будильника можно будет задействовать отдельный канал со спец режимом, именно для этих целей, но таких каналов кажись всего один штук. Ну и управление физикой будет очень ограниченным. С этим делом прекрасно справляется программный таймер, там даже ничего изобретать не нужно. Почему невозможно? Просыпаемся по RTC, смотрим, какие есть "задачи", если нет - то спим дальше, если есть - выполняем их - последовательно - типа дрыгнуть ногами, запустить АПЦ и дождаться результата (т.е. квазиодновременно, если у нас минимальный квант от RTC секунда), перед тем как заснуть пробегаемся по будильникам, находим ближайший, программируем время следующего прерывания RTC и засыпаем. RTC позволяет (более лучше спать и) меньше потреблять, чем программный/нутряной таймер. А как вы будете подключать М0 в сеть, где будут бегать ваши TCP пакеты? Размер занимаемой озу стеком TCP/IP сильно зависит от числа одновременных одкрытых соедений, других поддерживаемых протоколов, в М0 ни у кого нет RMI интерфейса, чтобы подключить эзернет, но есть spi и uart как минимум, к ним пожно подключать внешние крохотные модули с реализаванных внутри них TCP/IP. В этом случае даже 8-битный адруино справиться с задачей на ура. Я для примера предложил самый бюджетный и простой вариант - вайфай ESP. Ну, это все меняет :) Всё равно веб сервер надо будет в М0 делать. Но сама идея мне нравится, как раз под дивайс, в котором крон должен жить. Вайфай ESP - это ESP8266 или есть другие варианты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 2 декабря, 2015 Опубликовано 2 декабря, 2015 · Жалоба Вайфай ESP - это ESP8266 или есть другие варианты? Конечно, есть и другие, этот я указал для примера и как самый ходовой и доступный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 3 2 декабря, 2015 Опубликовано 2 декабря, 2015 · Жалоба А вот не подскажет ли кто - есть ли в природе embedded cron не для линукса, а для мелкопроцессоров типа ARM Cortex 3, и чтоб в исходниках на Це, и чтоб памяти не ел, и чтоб difftime мухой считал без double. Если вам надо сделать просто запуск задач по определенным моментам времени, то можно создать функцию которую вызываете каждую секунду, в ней считаете минуты, часы, дни. секунды, минуты, часы, дни считаете в глобальных переменных. Заводите необходимое количество структур моментов времени срабатывания содержаших обработчик явления, далее простой обработчик, который каждую секунду сравнивает все структуры с текущим временем и все. Правда difftime не считает. Могу рассказать более подробно (с примерами имплементации) если интересно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 2 декабря, 2015 Опубликовано 2 декабря, 2015 · Жалоба Почему невозможно? Просыпаемся по RTC, смотрим, какие есть "задачи", если нет - то спим дальше, если есть - выполняем их - последовательно - типа дрыгнуть ногами, запустить АПЦ и дождаться результата (т.е. квазиодновременно, если у нас минимальный квант от RTC секунда), перед тем как заснуть пробегаемся по будильникам, находим ближайший, программируем время следующего прерывания RTC и засыпаем. RTC позволяет (более лучше спать и) меньше потреблять, чем программный/нутряной таймер. Да вот фига. Просыпаемся когда уже пора что-то делать, потому как будильник на это время взведён. Иначе смысл в будильнике отпадает, можно на программных таймерах считать, с точностью в миллисекунды. Завёл одну переменную в 64 бита - и железяка её за всю твою жизнь не обнулит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgen2 0 2 декабря, 2015 Опубликовано 2 декабря, 2015 · Жалоба Да вот фига. Просыпаемся когда уже пора что-то делать, потому как будильник на это время взведён. Иначе смысл в будильнике отпадает, можно на программных таймерах считать, с точностью в миллисекунды. Да фига. Я как раз об этом и говорю. Завёл одну переменную в 64 бита - и железяка её за всю твою жизнь не обнулит. не всю. До разряда батарейки/зависания/сбоя Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться