0 / 0 / 0
Регистрация: 01.11.2021
Сообщений: 14
|
||||||
1 | ||||||
Как сделать так чтобы длительность импульса регулировалось кнопками + и -? МК Atmega328P04.11.2021, 08:21. Показов 1088. Ответов 10
Метки нет (Все метки)
идёт прерывание по спадающему фронту на INT0, после 3 прерываний должен последовать импульс регулируемой длины.
0
|
04.11.2021, 08:21 | |
Ответы с готовыми решениями:
10
Как сделать так, чтобы спад импульса был в 3р дольше (verilog) Необходимо сделать так, чтобы воздействие генерируемого импульса воздействовало определенное время Не знаю как сделать так чтобы как сделать так чтобы через каждые N строк таблицы выдача результатов останавливалась Как посчитать длительность Прямоугольного импульса (Меандр) Как влияет длительность импульса на спектр фаз или амплитуд периодического сигнала? |
2129 / 1212 / 503
Регистрация: 11.10.2018
Сообщений: 6,138
|
||||||||||||||||
04.11.2021, 10:00 | 2 | |||||||||||||||
Сообщение было отмечено 21111986 как решение
Решение
Попробуй так:
- для этой переменной и unsigned char хватит. Раз i уже используется, тогда задержка вых. импульса будет d
Добавлено через 2 минуты Не забываем про операторы << сдвиг влево >> сдвиг вправо & логическое И. Это для обработки байт от порта от кнопок. Добавлено через 35 минут выключение не так, а вот так:
1
|
5 / 5 / 0
Регистрация: 25.06.2017
Сообщений: 586
|
|
04.11.2021, 12:38 | 3 |
Извиняюсь, что так беспардонно влезаю в Вашу тему:
Я правильно понимаю, что после этого PINn этой кнопки/вывода МК будет равен "единичке"?
0
|
2129 / 1212 / 503
Регистрация: 11.10.2018
Сообщений: 6,138
|
|
04.11.2021, 12:43 | 4 |
Нет, неправильно, там подключится подтягивающий резистор. Его можно подключить либо снаружи либо внутри записав в PORTC = 1 на соответствующий пин.
0
|
5 / 5 / 0
Регистрация: 25.06.2017
Сообщений: 586
|
|
04.11.2021, 12:55 | 5 |
С этим всё понятно.
Я имею в виду, когда это всё будет сделано, с помощью команды PINn я могу опросить любой порт? Неважно, включен он на выход или на вход. И если я опрошу с помощью этой самой команды интересующий меня вывод микроконтроллера, допустим PINС2 или PIND5, я же должен получить в результате, что PINС2 или PIND5 этого вывода равен единичке? Или я совсем чего-то не понимаю?
0
|
2129 / 1212 / 503
Регистрация: 11.10.2018
Сообщений: 6,138
|
|
04.11.2021, 13:04 | 6 |
0
|
5 / 5 / 0
Регистрация: 25.06.2017
Сообщений: 586
|
|
04.11.2021, 13:12 | 7 |
Извиняюсь, с этим мне всё понятно тоже.
Скажите пожалуйста, то что написано ниже: -------------------------------------------------------------------- Насколько понимаю, если я вывод микроконтроллера PD0 настроил на вход, то есть в Регистр направления данных порта D прописал нолик в нулевой бит: DDRD &= ~(1<<0); Затем в Регистр данных портa D прописал единичку в нулевой бит, PORTD |= (1<<0); тем самым подтянул его резистором к питанию, после этого, по моему мнению, регистр выводов порта D должен читать единичку с вывода PD0? PIND0 = 1 -------------------------------------------------------------------- Это всё верно? Добавлено через 1 минуту И ещё раз Извините, Вы не могли бы перейти в соседнюю тему: Запись битов в Регистр выводов порта D
0
|
2129 / 1212 / 503
Регистрация: 11.10.2018
Сообщений: 6,138
|
|
04.11.2021, 13:19 | 8 |
Да. Нет.
0
|
5 / 5 / 0
Регистрация: 25.06.2017
Сообщений: 586
|
|
04.11.2021, 15:02 | 9 |
0
|
0 / 0 / 0
Регистрация: 01.11.2021
Сообщений: 14
|
||||||
04.11.2021, 17:22 [ТС] | 10 | |||||
Спасибо за ответ. Он выдаёт ошибку. Подскажите в чём дело
Error __builtin_avr_delay_cycles expects a compile time integer constant
0
|
2129 / 1212 / 503
Регистрация: 11.10.2018
Сообщений: 6,138
|
|
04.11.2021, 17:40 | 11 |
Для этого компилятора нужно вставлять константу в функцию _delay_us();
Поэтому, нужно искать другие пути решения изменения длины импульса, например через Таймер0. Добавлено через 6 минут Да просто циклом задержку сделай и переменная до которой считает переменная будет. Добавлено через 41 секунду int это 2 байта в WinAVR, не забывайте это. Добавлено через 2 минуты Просто цикл, который считает до этой переменной и в нем задержка _delay_us(1);
1
|
04.11.2021, 17:40 | |
04.11.2021, 17:40 | |
Помогаю со студенческими работами здесь
11
Как сделать так чтобы персонаж был в приорите, так чтобы он не заходил за траву? как сделать чтобы на конец импульса 1 порта включался 2ой порт Длительность импульса Rigidbody2D импульс AddForce() Как сделать, чтобы после импульса объект не падал назад? Длительность импульса RESET Измерить длительность импульса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
|
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
|
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
|
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
|
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
|
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
|
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
|
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций
История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
|
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
|
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы
В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
|
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
|
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
|