помощью. Под спойлером я оправдываюсь и тд )
СпойлерПоказать
Я не смог найти как оперировать с прерываниями в программе, не нашел и толковой инструкции
как создавать пользовательские модули из кода. Великий метод тыка отнимает много времени, я
пробовал, честно но и за несколько часов в интернете так разгрести вопросы не удалось.
В юности увлекался цифровой электроникой и визуальное программирование
в FLprog стало просто счастьем. Сам код я "пишу" только лишь читая примеры схожих
задач, переделывая его под себя, собирая по кусочкам. Пытался изучать с азов(так
правильнее, точно знаю) но не могу, не укладывается это в голове так, как могло
укладываться лет десять назад. часа два вместо сна - единственное, что я могу позволить
себе. Остальное - работа, деть. Времени просто катастрофически не хватает ни на что, но
если не заниматься своим увлечением совсем - можно застрелиться, так что вот так, по
капельке....
я надеюсь, что кто-то посмотрит мою задачу и код, сделает модуль, а я уже на его примере и
аналогии буду изменять его или создавать другой, или использовать как есть. но я не понимаю, по ка что, как правильно
превратить код в модуль. Посмотреть, разобрать готовый - это будет большой помощью.
как создавать пользовательские модули из кода. Великий метод тыка отнимает много времени, я
пробовал, честно но и за несколько часов в интернете так разгрести вопросы не удалось.
В юности увлекался цифровой электроникой и визуальное программирование
в FLprog стало просто счастьем. Сам код я "пишу" только лишь читая примеры схожих
задач, переделывая его под себя, собирая по кусочкам. Пытался изучать с азов(так
правильнее, точно знаю) но не могу, не укладывается это в голове так, как могло
укладываться лет десять назад. часа два вместо сна - единственное, что я могу позволить
себе. Остальное - работа, деть. Времени просто катастрофически не хватает ни на что, но
если не заниматься своим увлечением совсем - можно застрелиться, так что вот так, по
капельке....
я надеюсь, что кто-то посмотрит мою задачу и код, сделает модуль, а я уже на его примере и
аналогии буду изменять его или создавать другой, или использовать как есть. но я не понимаю, по ка что, как правильно
превратить код в модуль. Посмотреть, разобрать готовый - это будет большой помощью.
продвинуться) и задача минимум, которую я смогу применить, но которая мало чем развернет
понимание.
Задача:
есть два входа прерывания (использую NANO) на которые приходят сигналы. модуль должен
выдавать значение времени между срабатыванием первого входа и второго.
Должен выдавать порядковый номер ПРАВИЛЬНОГО срабатывания, должен выводить ошибку при
нарушении условий срабатывания:слишком малый промежуток времени; слишком большой промежуток
времени; срабатывание только первого входа; срабатывание только второго входа.
Он должен иметь вход, на который можно подавать установку минимального времени, вход для
установки максимального времени,вход сброса выходов в ноль.
он должен иметь настраиваемый параметр mode для прерывания (LOW,CHANGE,RISING,FALLING)
Задача минимум - модуль должен выдавать значения времени в мкс между сработкой первого и
второго датчика. ну и возможность подправить mode и код в целом. остальное можно решить другими
элементами, но все же...это имеет низкий образовательный потенциал.
Посмотрите, пожалуйста, код и диаграмму. диаграмма - лишь эскиз и не имеет реального
временного масштаба, а код написан мною, слабо разбирающимся в нем человеке. по этому я не
осилю всюзадачу устройства целиком только кодом, только визуальное спасет. Покажите, пожалуйста, ошибки в коде. Я старался, что бы все было понятно, что бы Вы не гадали на гуще.
Описание диаграммы буду производить по отдельным участкам, которые помечены на первом
уровне:
1: сработали последовательно 1 и 2 датчики, на выходе значение изменилось с нуля на
вычесленное, выход N изменил число 0 на 1 выходы ошибок по нулям
2: то же самое, просто второй датчик сработал тогда, когда еще не отпустил первый,
припараметре CHANGE это не имеет значения.выход меняет значение на вновь вычесленное время,
выход счетчика N =2
3: сработали последовательно первый и второй датчики, но это произошло медленно, время
между срабатываниями не удовлетворяет условию(задается), вызывается ошибка ERR2, Выход
замера времени остается прежним, выдавая результат последнего успешного измерения, счетчик
N не прибавляет значение и тоже остается прежним.
4: Сработал только первый датчик. Это вызываетошибку ERR3 . выходы данных замеров времени и
подсчета успешных срабатываний остаются прежними. ошибки не должны сбивать значения
успешных сработок.
5: сработал второй датчик, а первый не сработал, вызывает ошибку ERR4, значение замера
времени и порядковый номер остаются прежними.
6: Датчики сработали непозволительно близко по времени (задается), вызывает ошибку ERR4,
выходы порядкового номера и успешного измерения времени остаются без изменений.
7: Датчики срабатывают удовлетворяя успешным условиям, выходы ошибок по нулям, значение
замера времени изменяется на вновь измеренное, выход N прибавляет единицу.
_____
при задействовании входа R выходы сбрасываются в ноль. этого нет на диаграмме. Надеюсь я
максимально подробно изложил задачу , прошу простить за многословие.