расчетно порушить её можно специально записав delay_ms(17000); но так писать и не надо - для того и делал, - надо Delay(1,17000,delayx,delayt); и всё будет ок (только для таких длинных интервалов delayt придется делать лонг...), правда если delay будет лонг - то и delay_ms(17000); её не вышибет...
другой вариант для больших интервалов использовать предделитель для вызова этой функции (счетчик пойдёт медленнее).
на встречный вопрос об ожидании внешнего события - в цикл ожидания надо вставить Delay(1,0,delayx,delayt); и всё будет ОК
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
можно было бы вообще счетчик останавливать, тогда можно пихать код любой длительности, но это доппроверки -> удлинение кода, а т.к. я пытаюсь его ужать - то лучше про этот нюанс просто буду помнить.
___________________
а нормальная ОС в тини влезет?
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
бывает, за пару слов борорься приходится а вы мне предлагаете потерять ещё немного флеша на запись, памяти на стек и времени на переход? а что я получаю взамен?
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3346922#p3346922"]бывает, за пару слов борорься приходится а вы мне предлагаете потерять ещё немного флеша на запись, памяти на стек и времени на переход? а что я получаю взамен?[/uquote]
Компилятор все заоптимизирует. Не будет никаких вызовов.
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3346922#p3346922"]бывает, за пару слов борорься приходится а вы мне предлагаете потерять ещё немного флеша на запись, памяти на стек и времени на переход? а что я получаю взамен?[/uquote]вы так и не объяснили, зачем вам строго нормированное по времени исполнения дробление кода. поэтому объяснить вам преимущества иного подхода - невозможно. тем более, что вы не особо прислушиваетесь. ну и соответственно, желание советовать тоже тает.
ковыряться в ваших макросах уже никто не хочет, да и ответов на ваши вопросы, по-моему, уже три страницы нет. прогноз каков? останетесь вы со своими проблемами в гордом одиночестве, да и все. мир не перевернется, никто не пострадает, никто и не заметит. всем, и вам тоже, будет наплевать на всё.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3346884#p3346884"]а если этот код не будет выделен в функцию?[/uquote]
Опять же недопонимание. Как я понял, Вы хотите написать функцию, которая будет выполняться последовательно частями. Это все надо для того, чтобы где-то ее (эту функцию) вызвать, не заботясь какая часть будет выполняться. Это так? Тогда как может быть, что "этот код не будет выделен в функцию"?
ну как... есть одна-единственная функция в программе, которая содержит в себе тот самый крутой автомат состояний, выполняющий ВСЁ. и эта единственная функция - обработчик прерывания, поэтому выходить из неё особо и не надо - некуда, кроме как снова в себя...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
[uquote="viiv",url="/forum/viewtopic.php?p=3346939#p3346939"]Компилятор все заоптимизирует. Не будет никаких вызовов.[/uquote] точно! заоптимизировал!
Добавлено after 4 minutes 11 seconds:
где можно почитать про возможности компилятора, про то как с ним более конструктивно взаимодействовать?
--------------------------------
ПС OSA скачал - начал изучать, но свой велосипед допилю - дело принципа!
Последний раз редактировалось Ivanoff-iv Чт апр 05, 2018 12:21:00, всего редактировалось 1 раз.
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
доделаю сам, буду пользоваться сам, а с вами не поделюсь, злые вы
пока задача - изучение языка, я знаю, что, уже для всего написаны готовые библиотеки, но, хочу чтото своё сделать и посмотреть насколько "коричневым" будет этот велосипед...
Добавлено after 1 minute 55 seconds:
пока я добился ощутимого сокращения потребления тока... и, вроде, ничего не глючит
Добавлено after 2 minutes 3 seconds:
пока смирюсь с отсутствием автонумерации и попробую побольше всего втолкать, посмотрю, насколько удобно вышло, а потом всё это на РТОС повторю
Добавлено after 1 minute 39 seconds:
на этот вопрос для себя я нашел консенсус, можете больше не отвечать.
Добавлено after 33 minutes 12 seconds: viiv, перепроверил - с упаковкой в функцию получается на одно слово тяжелей, чем без упаковки.
Добавлено after 14 minutes 49 seconds:
________________________
всё, оценил масштаб - буду переписывать на функциях, а то на дефайнах слишком жирно выходит, спасибо за идеи.
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3346741#p3346741"]а нормальная ОС в тини влезет?[/uquote]Зачем себя так ограничивать? Можно взять МК скажем с 128 КБ флеша и 20 КБ ОЗУ. Запустить на нем ОСь и пусть крутятся на ней скажем 10 задач.
Нормальная ОСь это не только планировщик задач, но и средства для доступа к общим ресурсам, очереди, программные таймеры и т. д.
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3346671#p3346671"]сейчас код выглядит так (пример использования)[/uquote]
Это напоминает Протопотоки (protothreads),поздновато увидел вашу дискуссию, так что последний страницы пришлось прочитать по диагонали, так что извиняйте если такое уже поднималось.
Подключал несколько DS1821, в таймере, получилось как-то так.
Спойлер
Лучше тем что нету не каких delay, а структура программы осталась "как бы линейная".
Писанины много из за того что там у меня 4 датчика подключалось, и я хотел сделать универсально, по этому много лишнего(всякие проверки на КЗ).