teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/03/21 09:05

投稿

thkana
thkana

スコア7735

answer CHANGED
@@ -16,4 +16,29 @@
16
16
  と同様のエラーになりました。
17
17
 
18
18
  pins_arduino.hとMCP4922.hとの間に不整合というかシンボルの衝突が起きている、ということのような。
19
- MCP4922.hでMCP4922::MCP4922()の宣言を行っている部分のint SCKの変数名を変えてやる必要があるのではないでしょうか。
19
+ MCP4922.hでMCP4922::MCP4922()の宣言を行っている部分のint SCKの変数名を変えてやる必要があるのではないでしょうか。
20
+
21
+ ---
22
+ ファイル内容確認しました。
23
+
24
+ packages\ATTinyCore\hardware\avr\1.3.3\variants\tinyX5/pins_arduino.hでは
25
+ ```C++
26
+ #define SS 3
27
+ #define MOSI 1
28
+ #define MISO 0
29
+ #define SCK 2
30
+ ```
31
+
32
+ UNOの場合多分‪Arduino15\packages\arduino\hardware\avr\1.8.2\variants\standard\pins_arduino.h が使われていて、おおよそ該当する部分は
33
+ ```C++
34
+ #define PIN_SPI_SS (10)
35
+ #define PIN_SPI_MOSI (11)
36
+ #define PIN_SPI_MISO (12)
37
+ #define PIN_SPI_SCK (13)
38
+
39
+ static const uint8_t SS = PIN_SPI_SS;
40
+ static const uint8_t MOSI = PIN_SPI_MOSI;
41
+ static const uint8_t MISO = PIN_SPI_MISO;
42
+ static const uint8_t SCK = PIN_SPI_SCK;
43
+ ```
44
+ となっているので、UNOのライブラリではエラーにならないのでしょう。