А еще лучше https://datasheets.maximintegrated.com/ ... AX6818.pdf
Кнопки и кнопочный интерфейс
- Сообщения: 1802
- Зарегистрирован: Ср сен 07, 2011 21:40:30
RS решает лучше.
А еще лучше https://datasheets.maximintegrated.com/ ... AX6818.pdf
А еще лучше https://datasheets.maximintegrated.com/ ... AX6818.pdf
- Реклама
- Сообщения: 225
- Зарегистрирован: Сб янв 14, 2012 22:53:50
В отличие от диванных теоретиков, никогда не писавших ничего сложнее диммеров и регуляторов вентилятора для уборной, у меня есть вполне рабочие проекты с многоуровневыми меню. Пример для Прот.8 ниже.против этого я и хотел выступить - 1) ты сделал 2 коротких нажатия, а получил одно длинное, т.к. второе нажатие совпало с вторым опросом, 2) даже если надо одно короткое, но выверенное по времени, то это будет сложно сделать т.к. система будет ожидать 2го замера, чтобы убедиться, что нажатие было коротким, и вообще система будет казаться тормознутой (по той же причине).
Попробуй вызвать в нем длинное нажатие двумя короткими и расскажи, как оно. Ну а неспособным написать простейший автомат состояний никто не запрещает юзать задержки, благо, в серию эти поделки никогда не пойдут.
Не в тему. Не перестаю умиляться:
[uquote="Jack_A",url="/forum/viewtopic.php?p=3280241#p3280241"]...об delay ...[/uquote]
Об ледовом побоище.
[uquote="Jack_A",url="/forum/viewtopic.php?p=3280241#p3280241"]...об delay ...[/uquote]
Об ледовом побоище.
Docendo discimus
вау!philosoraptor писал(а):у меня есть вполне рабочие проекты с многоуровневыми меню.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Это пройдет со временем, наверно.ozonn писал(а):не вижу ничего плохого в применении _delay где бы то ни было и уж тем более для подавления дребезга
- Реклама
- Сообщения: 522
- Зарегистрирован: Чт янв 21, 2016 15:59:10
[uquote="Jack_A",url="/forum/viewtopic.php?p=3280784#p3280784"]
я вас умоляю...
вот скажите мне, пожалуйста, если мне нужна задержка в 10 мкс, что мне делать? Таймер использовать?
Это пройдет со временем, наверно.[/uquote]ozonn писал(а):не вижу ничего плохого в применении _delay где бы то ни было и уж тем более для подавления дребезга
я вас умоляю...
вот скажите мне, пожалуйста, если мне нужна задержка в 10 мкс, что мне делать? Таймер использовать?
я так для себя и решил delay_us(); можно, если осторожно, а вот delay_ms(); это уже перебор.
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Сообщения: 522
- Зарегистрирован: Чт янв 21, 2016 15:59:10
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3281133#p3281133"]я так для себя и решил delay_us(); можно, если осторожно, а вот delay_ms(); это уже перебор.[/uquote]
представьте себе, что вы инициализируете дисплей, там нужны задержки порядка 200 ms. Тоже использовать таймер?
я вот не могу понять, чем для вас так страшен _delay?
представьте себе, что вы инициализируете дисплей, там нужны задержки порядка 200 ms. Тоже использовать таймер?
я вот не могу понять, чем для вас так страшен _delay?
Ну зачем же крайности ? Я сам в таких случаях пустой цикл закручиваю. Я о другом: сгенерировали событие, которое откликнется миллисекунд через 10 - тупо ждем? Да за это время кучу арифметики можно обсчитать, а потом спокойно берешь готовый результат.ozonn писал(а): вот скажите мне, пожалуйста, если мне нужна задержка в 10 мкс, что мне делать? Таймер использовать?
https://www.youtube.com/watch?v=lNa6i7rXqyQ
- Сообщения: 522
- Зарегистрирован: Чт янв 21, 2016 15:59:10
[uquote="Jack_A",url="/forum/viewtopic.php?p=3281146#p3281146"]
если в это время ничего делать не надо, то да, тупо ждем
[uquote="Jack_A",url="/forum/viewtopic.php?p=3281146#p3281146"]Да за это время кучу арифметики можно обсчитать, а потом спокойно берешь готовый результат.[/uquote]
если надо что-то считать, то, конечно надо считать
Ну зачем же крайности ? Я сам в таких случаях пустой цикл закручиваю. Я о другом: сгенерировали событие, которое откликнется миллисекунд через 10 - тупо ждем?[/uquote]ozonn писал(а): вот скажите мне, пожалуйста, если мне нужна задержка в 10 мкс, что мне делать? Таймер использовать?
если в это время ничего делать не надо, то да, тупо ждем
[uquote="Jack_A",url="/forum/viewtopic.php?p=3281146#p3281146"]Да за это время кучу арифметики можно обсчитать, а потом спокойно берешь готовый результат.[/uquote]
если надо что-то считать, то, конечно надо считать
[uquote="ozonn",url="/forum/viewtopic.php?p=3281138#p3281138"]...вы инициализируете дисплей, там нужны задержки порядка 200 ms...[/uquote]то инициализация, она один раз проходит, ради этого таймер расходовать - большее зло
а вот если семисегментник? - тут неумелое и/или неумеренное использование задержек видно на глаз (причем в прямом смысле
)
а вот если семисегментник? - тут неумелое и/или неумеренное использование задержек видно на глаз (причем в прямом смысле
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Сообщения: 522
- Зарегистрирован: Чт янв 21, 2016 15:59:10
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3281160#p3281160"][uquote="ozonn",url="/forum/viewtopic.php?p=3281138#p3281138"]...вы инициализируете дисплей, там нужны задержки порядка 200 ms...[/uquote]то инициализация, она один раз проходит, ради этого таймер расходовать - большее зло
[/uquote]
дело не в расходовании таймера, а в ненужном расходовании памяти и ненужном усложнении кода.
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3281160#p3281160"]а вот если семисегментник? - тут неумелое и/или неумеренное использование задержек видно на глаз (причем в прямом смысле
)[/uquote]
семисегментник, как раз, нужно подсвечивать при помощи прерываний от таймера и тогда ему никакие _delay не помеха
дело не в расходовании таймера, а в ненужном расходовании памяти и ненужном усложнении кода.
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3281160#p3281160"]а вот если семисегментник? - тут неумелое и/или неумеренное использование задержек видно на глаз (причем в прямом смысле
семисегментник, как раз, нужно подсвечивать при помощи прерываний от таймера и тогда ему никакие _delay не помеха
- Сообщения: 225
- Зарегистрирован: Сб янв 14, 2012 22:53:50
Вооот, совершенно верно, имо. Бывают эпизодические места в коде, когда городить автомат это явный оверкилл, и там задержка смотрится вполне уместно. К примеру, после записи во внешний епром нужно пожождать 10 мс перед очередным обращением к нему. В моем случае событие редкое, программа вполне может подождать. Впрочем, по образованию я не программист и вполне могу ошибаться.то инициализация, она один раз проходит, ради этого таймер расходовать - большее зло
вот из подобных рассуждений обычно и растут ноги того самого применения delay, которое некоторые горячие головы называют абсолютным злом.philosoraptor писал(а):К примеру, после записи во внешний епром нужно пожождать 10 мс перед очередным обращением к нему.
дело в том, что задержки на время ожидания завершения какого-либо процесса действительно можно назвать злом, разве что не абсолютным. длительные процессы обязательно должны как-то уведомлять о своем завершении, а основная программа вместо ожидания должна периодически эти уведомления получать и обрабатывать.
в частности, завершение записи EEPROM сопровождается падением бита EEPE в регистре EECR - именно эту ситуацию и следует ждать, и, очевидно, ждать ПЕРЕД ТЕМ, КАК ПРИСТУПИТЬ К ЗАПИСИ, а никак не после! аналогично следует поступать и в остальных случаях, например, при работе с ЖКИ1602 - крайне популярный подход "тупых задержек" на время, "достаточное" для реакции контроллера ЖКИ частенько приводит к тому, что самописные "библиотеки" то работают, то не работают... а правильный подход заключается в чтении бита занятости контроллера ЖКИ перед тем, как что-либо туда писать. и тогда задержки (хоть тупые, хоть умные) становятся не нужны, библиотека работает всегда и везде, мир и спокойстве царит повсеместно
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
ну вот, пока стригся, АRV про ЕЕПРОМ расписал
, отвечу про семисегментник: бывает задержки вставляют внутри какого либо прерывания и всё, будет яркость плавать (глобальны прерывания разрешать тоже нужно умеючи - сколько там граблей по переполнению стека найдено новичками - не счесть, причём чаще какраз теми, кто делаями балуется
).
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Сообщения: 522
- Зарегистрирован: Чт янв 21, 2016 15:59:10
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3281240#p3281240"]отвечу про семисегментник: бывает задержки вставляют внутри какого либо прерывания[/uquote]
а бывает, что вместо 220В дают 1000. Но тут речь не о том
а бывает, что вместо 220В дают 1000. Но тут речь не о том
касательно delay-ев лично я стараюсь придерживаться такой классификации: если задержка есть самоцель, т.е. неотъемлемая часть алгоритма, то не грех её сделать "тупо". если же задержка необходима для синхронизации параллельно выполняющихся алгоритмов, то следует тупости избегать. прежде чем до этого додуматься, я пробовал разные варианты, доходившие до создания виртуальных таймеров с виртуальными же прерываниями.
и в доказательство того, что мой подход приносит не вред, а пользу, снова приведу пример алгоритма приема кодов дистанционного управления RC5 (и даже в общем случае - любого стандарта). наверняка вам знакомы реализации с использованием режима захвата таймера, с прерываниями по сигналу с ИК-датчика... и наверняка вы согласитесь, что разобраться во всем этом порой сложно не только начинающему, но и заканчивающему... а вот мой вариант на ТУПЫХ ЗАДЕРЖКАХ - проще только два пальца обсосать! и это работает очень хорошо - в статье сказано о нюансах разработки, но по сравнению с труднопонимаемыми, но "правильными" не тупыми алгоритмами, все это мелочи. в статье есть ссылка и на другую мою статью - о том, как принимать ИК-коды любых (если честно - почти любых) стандартов НА ТУПЫХ ЗАДЕРЖКАХ. хотя можно и без них....
так что всё хорошо, что хорошо
и в доказательство того, что мой подход приносит не вред, а пользу, снова приведу пример алгоритма приема кодов дистанционного управления RC5 (и даже в общем случае - любого стандарта). наверняка вам знакомы реализации с использованием режима захвата таймера, с прерываниями по сигналу с ИК-датчика... и наверняка вы согласитесь, что разобраться во всем этом порой сложно не только начинающему, но и заканчивающему... а вот мой вариант на ТУПЫХ ЗАДЕРЖКАХ - проще только два пальца обсосать! и это работает очень хорошо - в статье сказано о нюансах разработки, но по сравнению с труднопонимаемыми, но "правильными" не тупыми алгоритмами, все это мелочи. в статье есть ссылка и на другую мою статью - о том, как принимать ИК-коды любых (если честно - почти любых) стандартов НА ТУПЫХ ЗАДЕРЖКАХ. хотя можно и без них....
так что всё хорошо, что хорошо
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
я к контроллеру отношусь как к коту: если можно спать, он будет спать.
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Сообщения: 225
- Зарегистрирован: Сб янв 14, 2012 22:53:50
Мне, к слову, как-то понадобилась либа для ик пультов, самому для написания наглости не хватило, попробовал разные варианты, в т.ч. вариант от многоуважаемого ARV выше, все это было не то, мягко говоря. И когда совсем уж отчаялся найти нужное, мне попалось действительно изящное, на мой взгляд, решение, которое почти ничего не весит, легко портируется в любой код и работает сразу "из коробки".
изящное-то оно изящное, но никак не отличает основной код от кода автоповтора. конечно, к теме задержек это не имеет отношения...philosoraptor писал(а):действительно изящное, на мой взгляд, решение
кстати, принцип построения алгоритма практически тот же самый, что и у меня, просто реализация на прерываниях.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!



