Arduino PinChangeInt.h会产生编译器错误

时间:2016-08-30 19:39:04

标签: c++ arduino-ide

我尝试重新编译使用PinChangeInt的旧arduino草图。编译器报告以下错误:

Arduino: 1.6.9 (Windows 7), TD: 1.29, Board: "Arduino/Genuino Micro"

In file included from D:\home\arnold\development\arduino\drone\serial_comm\Rx\Rx.ino:50:0:

C:\packages\arduino\libraries\PinChangeInt/PinChangeInt.h:328:32: error: 'PCMSK1' was not declared in this scope
 PCintPort portC=PCintPort(3, 1,PCMSK1); // port PC==3  (also in pins_arduino.c, Arduino version 022)

C:\packages\arduino\libraries\PinChangeInt/PinChangeInt.h:331:32: error: 'PCMSK2' was not declared in this scope
 PCintPort portD=PCintPort(4, 2,PCMSK2); // port PD==4

exit status 1
Error compiling for board Arduino/Genuino Micro.

有谁知道这里有什么问题以及我如何修复这些错误?使用Arduino 1.6.9版,PinChangeInt版本为2402。

1 个答案:

答案 0 :(得分:1)

Arduino Micro中,使用了ATMega32U4,它仅支持PCMSK0上的PORTB。其他端口没有此功能。请参阅:ATMega32U4 datasheet

您也可以使用attachInterrupt来处理外部中断。因此,您可以在引脚PCINT00,{{1}上找到1个来源(所有这些来源都有一个ISR处理程序)和五个外部中断源(每个都有自己的ISR处理程序) }},23(HW引脚:7 - PD0PD3)。