Проблема с использованием обработчика IRQ Arduino в nRF51822

interrupt nrf51

Может ли кто-нибудь помочь мне, так как в настоящее время я использую библиотеку nRF51822-Arduino с чипом nRF51822 и не могу позвонить функция прерывания, wakeUp().

В настоящее время я подключаю вывод внешнего прерывания к выводу nRF51822: P0_1 или выводу arduino: A0 после преобразования вывода в библиотеке nRF51822-Arduino. Может быть, я знаю, какое значение я должен указать для переменной pin для функции ниже:

attachInterrupt(pin, wakeUp, CHANGE);

чтобы при изменении прерывания вызывалась функция wakeUp()?

, 👍-1

Обсуждение

Удалось получить пример, [External_Interrupter.ino](https://github.com/RedBearLab/nRF51822-Arduino/blob/S130/arduino-1.6.x/hardware/RBL/RBL_nRF51822/libraries/nRF_Examples/examples/ External_Interrupter/External_Interrupter.ino), работает правильно?, @Greenonline


1 ответ


0

Чтение исходного кода для attachInterrupt() показывает, что вы должны использовать номер вывода Arduino: https:// github.com/RedBearLab/nRF51822-Arduino/blob/S130/arduino-1.6.x/hardware/RBL/RBL_nRF51822/cores/RBL_nRF51822/wiring_interrupter.cpp#L70

Номер вывода Arduino для A0 равен 19 в соответствии с преобразованием вывода: https:// github.com/RedBearLab/nRF51822-Arduino/blob/S130/arduino-1.6.x/hardware/RBL/RBL_nRF51822/cores/RBL_nRF51822/pin_transform.cpp#L64

Ура!

,

Привет, Микаэль, что ты пытаешься сказать, это установить значение 19 для переменной контакта? Я пробовал, но он тоже не работает., @adrian.wong

Я могу настроить прерывание и триггер, чтобы проверить, исходит ли какое-либо прерывание от чипа Adxl345. Он меняется от 1 до 0, но не может вызвать обработчик прерывания., @adrian.wong

Насколько я понимаю в Arduino, например, цифровые контакты 2 и 3 Arduino Uno предназначены для прерывания, а переменная «pin» должна быть установлена на 0 при использовании D2 и 1 при использовании D3., @adrian.wong