3

我正在编写一个自定义库,它在 Arduino Uno 上正常工作。然而,我现在已经掌握了 Arduino Due,我需要定义一些特定于板的引脚常量。

我知道对于大多数板,您可以通过#ifdef使用\\arduino-1.5.2\hardware\tools\avr\avr\include\avr\io.h. 例如:

#if defined (__AVR_ATmega128__)
    //do something specific
#endif

有人知道哪个是用于到期的正确常量吗?

4

2 回答 2

5

可以,_SAM3XA_但包括许多其他 Atmel ARM 芯片(SAM3X8C、SAM3X8H 等)。

更精确的东西是

#if defined (__arm__) && defined (__SAM3X8E__) // Arduino Due compatible
// your Arduino Due compatible code here
#endif

(有关更多信息,请参阅文件sam3.h。

如果您只想针对 Arduino Due(省略兼容板),您可以使用

#if defined (_VARIANT_ARDUINO_DUE_X_)
// your Arduino Due code here
#endif

(这是在 Arduino Due 的variant.h文件中定义的。)

于 2014-01-11T05:43:39.607 回答
3

我一般用...

#ifndef __AVR__
// something special just for non AVR8's
// ...
#endif

我相信你也可以在哪里使用......

#ifdef _SAM3XA_
// something special just for Due's SAM3XA
// ...
#endif
于 2013-07-18T13:38:51.587 回答