Время работы по включению и выключению
- Войдите на сайт для отправки комментариев
Пнд, 05/10/2020 - 16:58
Помогите написать скетч по определению времени работы (на пин приходит то ноль то единица ) нужно определить сколько времени был ноль. Плиз.
А смысл?
1000р
###
Денег 0 и не намечается
Пока тренируюсь . Подаю с другой ардуинки о или 5 вольт с задержкой 5 сек и пытаюсь в порт вывести время
Денег 0 и не намечается
тогда пиши сам. Будут вопросы (по написанию ) - задавай, но код за тебя тут никто писать не станет.
Читай постоянно пин, запоминай в переменной millis() момента активности. Потом бери пример "blink без delay", ищи в нем условие сравнения прошедшего времени с заданным промежутком. В своём варианте сделаешь два условия - на 5 и на 10 сек. Под условиями дёрнешь релюшку и врубишь сирену.
Читай постоянно пин, запоминай в переменной millis() момента активности. Потом бери пример "blink без delay", ищи в нем условие сравнения прошедшего времени с заданным промежутком. В своём варианте сделаешь два условия - на 5 и на 10 сек. Под условиями дёрнешь релюшку и врубишь сирену.
А чего его постоянно считать, настроить на прерывание и пусть в лупе крутится
А чего его постоянно считать, настроить на прерывание и пусть в лупе крутится
та... нее... задача для новичка и решение для новичка, если бы ТС знал прерывания - вопроса бы и не было.
пусть с миллисами поиграется. Задачка чисто в логике - решит ее, может толк и выйдет...
или уже вышел и осталась только ......
как сможет вопрос грамотно поставить, так и дело стронется, а направление на миллис.
del
Пока тренируюсь . Подаю с другой ардуинки о или 5 вольт с задержкой 5 сек и пытаюсь в порт вывести время
Покажи свой код, как тренируешься. А так разговор ни о чем.
Могу подарить свой код "двоичного осцилографа", МК с равномерной частотой делает опрос порта, и отправляет по UART (т.е. побитно копирует, добавляя старт/стоп биты). На ПК программа это читает и пишет в лог сколько времени был "0" и сколько "1". Использую для отладки протоколов.
Пока тренируюсь . Подаю с другой ардуинки о или 5 вольт с задержкой 5 сек и пытаюсь в порт вывести время
для информации - слишком часто выводить в порт плохо. Необходимо написать программу так, чтобы в порт выводилось не чаще 1 раза в 5 секунд (можно реже). использовать delay - запрещено!
ЗЫ и не стесняйтесь, код показывайте, может посмеемся, а может и чем помочь сможем... на пример магическим пинком в нужном направлении.
###
Это код с меги принимаю с нано и сравниваю с периодом 5 сек. Собрал как смог. Пока не могу разобраться как все-таки именно посчитать сколько времени нет фазы и как это вывести на дисплей.
###
Вы бы не распылялись, если хотите освоить запуск задач по расписанию - зачем 80% кода занимает работа с TFT экраном? Выкиньте экран из кода, заставлять людей копаться в куче ненужных строк - это неуважение к тем, кто пытается вам помочь.
Понимаю что нужен обработчик прерываний. Т о есть создать глобальную переменную и в обработчике добавлять по 1 мс а потом играться с if 5 сек и обрыв ( обрыв может быть сколько угодно времени вот его как- то надо определить и вывести на дисплей )
Суть прерываний читал но пока особого понимания работы не понимаю.
###
Это код с меги принимаю с нано и сравниваю с периодом 5 сек. Собрал как смог. Пока не могу разобраться как все-таки именно посчитать сколько времени нет фазы и как это вывести на дисплей.
убрать все лишнее и выводить только в порт - как получится результат, лепить экранчики и прочее, раз иначе пока сложно. т.е. минимизировать непонятные места или полностью исключить
если в посте 15 есть нечто разумное, то в посте 16 с этим сложности.
###
###
И вообще, сперва с одной фазой разберитесь, а потом клонируйте алгоритм... это тоже будет отдельной задачей. И... у вас в условии алгоритм системы с распределенными параметрами, а это не так просто как кажется (если придираться к скорости обработки)... но вам до этого как до Китая...
Понимаю что нужен обработчик прерываний. Т о есть создать глобальную переменную и в обработчике добавлять по 1 мс
то что вы описываете - в Ардуино уже сделано за вас - функция millis() каждую миллисекунду увеличивается на 1
ard-20 - такое впечателение, что вы сами с собой разговариваете. вам говорят убрать все лишнее из кода - а вы продолжаете бубнить про прерывания и большой театр
###
Считает время 0 и 1 правильно . Подскажите пожалуйста как вывести в порт по окончанию счета 1 раз ?
дожно считать ?
Поправил код чтобы выводил ошибку фазы если обрыв более 5 сек и время обрыва. поставил флаг для вывода в порт . Выводит постоянно как только обрыв более 5 сек. Подскажите как вывести один раз по истечении времени обрыва ?
Используй флаги!
не могу понять как его применить
не могу понять как его применить
тогда не используй, ищи другое решение. что можешь понять
###
А слабо флаг обнулить после первого вывода?
А слабо флаг обнулить после первого вывода?
так он его нулит, он флаг, что вывел не устанавливает
привет, пост 30 :
1) чего компилятор говорит про строки 1 и 14?
2) напишите код, в котором будет проверяться условие изменения состояния на входе. Только когда произойдет событие будет что-то делаться... к примеру выводим в порт состояние входа. Пока этого не сделаете код будет неправильный, даже если и будет как-то работать.
пишет - без ошибок компилятор. А вот куда ставить флаги пока чтоб выводило 1 раз пока не пойму. Ставил уже куда только мог.
Можно прям Ардуине на корпус клеить
Понимаю что нужен обработчик прерываний. Т о есть создать глобальную переменную и в обработчике добавлять по 1 мс а потом играться с if 5 сек и обрыв ( обрыв может быть сколько угодно времени вот его как- то надо определить и вывести на дисплей )
Суть прерываний читал но пока особого понимания работы не понимаю.
Этот обработчик прерываний собственно уже есть.
Тот самый millis()
А вот куда ставить флаги пока чтоб выводило 1 раз пока не пойму. Ставил уже куда только мог.
я не пойму, вы типа в "своем" коде ни строчки не понимаете, что ли? Может отложить задачку на пару месяцев и книжки почитать?
###
Не помогает на корпус ?
Я бы отложил если не надо было
Я бы отложил если не надо было
Не врите , вам не надо.
Если бы было надо, то воспользовались бы предложением в сообщении #3
Я бы отложил если не надо было
Как говорят были бы деньги был бы рай . А их нет (!)
Как говорят были бы деньги был бы рай . А их нет (!)
Ну тут варианты, читать-разбирать-понимать через неумею и нехочу, или идти денег заработать.
Клянчить код на форуме и собирать из отходов хренпоймичто совсем не вариант.
Как говорят были бы деньги был бы рай . А их нет (!)
тогда читать книжки два месяца.
Было бы действительно "надо" - деньги бы нашлись. Сумма не запредельная.
Как говорится - "проблемы, которые можно решить за деньги - это вовсе не проблемы, это просто расходы"
Судя по всему через пару дней читать уже не надо будет .
Вопрос : Как тему закрыть в форуме ?
Вопрос : Как тему закрыть в форуме ?
Попросить меня, я удалю. :)