Я экспериментировал с методами быстрого включения и выключения цифровых выходных контактов в Arduino. Это код, который я использую:
#define PIN3_ON PORTD |= 0x8
#define PIN3_OFF PORTD &= ~0x8
#define NOP __asm__ __volatile__ ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t")
void setup() {
pinMode(3, OUTPUT);
}
void loop()
{
cli();
while (1) {
PIN3_ON;
NOP;
NOP;
PIN3_OFF;
NOP;
NOP;
}
}
Когда я наблюдаю за выходом под прицелом, я вижу какое-то быстро затухающее колебание после выключения штифта:
Я наблюдал это на Arduino Uno и Nano328. В чем причина этого колебания?
Попробуйте закрепить заземляющий провод на контакте заземления, который физически находится ближе всего к контакту, на который вы смотрите. Если это ничего не меняет, и если можете, устраните провисание провода заземления вашего прицела, обернув его вокруг щупа.
Я не могу сразу найти хорошую статью (я уверен, что она есть у каждого производителя прицелов) — вот несколько советов, которые я знаю:
(Если кто-то, читающий это, знает хорошую статью или презентацию на YouTube, пожалуйста, опубликуйте ссылку — это одна из тех вещей, которые я собирал по крупицам на протяжении многих лет, но мне никогда не приходилось четко формулировать).
Тим Вескотт
Gearoid Мерфи
аналоговые системы рф