Прерывание таймера Arduino: почему при включении прерывания я получаю небольшой неожиданный импульс?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Прерывание таймера Arduino: почему при включении прерывания я получаю небольшой неожиданный импульс?

Сообщение Anonymous »


Я написал простой код для создания двух выходных линий с одинаковой частотой (например, 100 Гц).

Как только я нажал кнопку (тактильный переключатель), 1-я выходная линия должна начать выдавать импульс, а 2-я должна отставать на 25% от периода 1-й.

Хотя я получаю желаемую частоту, наблюдая за выходным сигналом с помощью осциллографа, я заметил небольшой импульс сразу после активации прерывания.

Изображение непрерывного чтения Изображение начала чтения

Это шум? или просто нормальное поведение? Есть ли способ избавиться от этого?

Я попробовал масштабировать и измерил это и получил ширину импульса 1,8125 мкс при 4,75 В. Увеличенное изображение и измерения

Я беспокоюсь, что если, например, я попытаюсь использовать это для чувствительного устройства подсчета пульса, это может привести к неточности подсчета.

Я подумал, что это может быть просто шум, вызванный тактильным переключателем, который я использую.

В качестве быстрой настройки я попробовал установить задержку в 1 секунду перед активацией прерывания после нажатия кнопки. Но проблема все еще остается.

Возможно, я упускаю здесь что-то фундаментальное?

Кстати, я использую Arduino Mega 2560. У меня есть 2 штуки, я пробовал обе, но поведение у них одинаковое.

Это код, который я использовал (задержка в 1 секунду все еще не применяется):
интервал начального времени = 0; двойная частота = 100; //устанавливаем желаемую частоту двойной период = 0, timerTicks = 0; двойная пошлина = 0,5; //устанавливаем рабочий цикл на 50% двойной импульсный разрыв = 0,25; //смещаем второй импульс на 25% недействительная настройка() { pinMode(22, ВХОД); //устанавливаем цифровой контакт 22 как ВХОД (тактильный переключатель) нетПрерывания(); DDRE |= (1
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Прерывание таймера Arduino: почему при включении прерывания я получаю небольшой неожиданный импульс?
    Anonymous » » в форуме C++
    0 Ответы
    68 Просмотры
    Последнее сообщение Anonymous
  • СИГНАЛ 6 Прерывание прерывания: 6 Завершение процесса
    Anonymous » » в форуме IOS
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Отладка VSCode C++ — прерывание во время выполнения кода (прерывание всего)
    Anonymous » » в форуме C++
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Отладка VSCode C++ — прерывание во время выполнения кода (прерывание всего)
    Anonymous » » в форуме C++
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Небольшой сдвиг в сторону при включении вертикальной полосы прокрутки
    Гость » » в форуме CSS
    0 Ответы
    79 Просмотры
    Последнее сообщение Гость

Вернуться в «C++»