Arduino Uno Atmega328P U, прерывание смены контактов может с Arduino Ide? - PullRequest
0 голосов
/ 26 апреля 2020

я хочу сделать это прерывание смены штырька в arduino uno (atmega328p u).

сначала я покажу свой код.

#include <avr\interrupt.h>

void setup()
{
  Serial.begin(9600);

  PCICR |= (1 << PCIE0);
  PCMSK0 |= (1 << PCINT0);
}

void loop() { }

ISR(PCINT0_vec)
{
  Serial.println("a");
}

мои справочные данные здесь

http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf

https://www.arduino.cc/en/Hacking/PinMapping168

я подключаю поворотный датчик на 5 В, gnd и фазу А на выводе № 8.

я подумал, что установка регистра управления прерыванием смены контактов (PCICR) на 0b00000001, и это означает, что я буду использовать порт B для прерывания.

и регистр маски смены контактов 0 (PCMSK0) установлен на 0b00000001, поэтому будет прервана при изменении цифрового контакта 8.

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

есть ли проблема в моем коде? или я должен скомпилировать в студии atmel? (я скомпилировал и загрузил этот код в Arduino IDE.) или мои справочные данные неверны?

, пожалуйста, помогите мне.

...