2017-09-23 57 views
0

我正在開發一個無線地使用Arduino心率脈衝的項目。我的問題是當我將RadioHead庫添加到現有的通用心臟脈衝代碼時;它是衝突的。將RadioHead庫添加到Arduino草圖

準確地說,它只與中斷部分相沖突。我在網上閱讀了一下,我想我有一個圖書館衝突......但是沒有任何其他圖書館正在使用。

當我嘗試上傳草圖只增加無線電頭後:

#include <RH_ASK.h> 

我得到以下信息:

C:\Users\namee\AppData\Local\Temp\cc9lzNai.ltrans2.ltrans.o: In function `main': 

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:43: undefined reference to `setup' 

collect2.exe: error: ld returned 1 exit status 

exit status 1 
Error compiling for board Arduino Leonardo. 

回答

0

錯誤的原因,如已經解釋給你的sterretje你的cross post of this question to the Arduino Forum

你根本沒有在草圖中寫入setup()函數;與圖書館衝突無關。

Arduino約定是每個草圖應該有一個setup()loop()函數,即使它們留空。在調用這些函數的Arduino core library there is a main() definition中,因此在草圖中未定義setup()時遇到的錯誤。我認爲這是一種合理的方法,讓編程儘可能地適合初學者,並且對於我所做的每個項目都很有用。如果由於某種原因,你錯過了C++的標準main(),那麼你可以在草圖中定義自己的main(),它將覆蓋main.cpp中的定義。不過,除非你有充分的理由,否則我會建議不要這樣做。

+0

非常感謝您的回答......實際上這不是我使用的主要代碼,就像是一個子開關(我的錯誤沒有聲明),但是在Arduino的形式中有一些幫助,他們發現問題是RadioHead使用定時器1和2,這就是爲什麼它是衝突...解決方案是通過更改RadioHead定時器爲5,例如,所以它不會干擾..我沒有設法編輯(RH_ASK.cpp)文件到切換定時器,但仍然在工作...如果你有任何想法請寫信給我..謝謝 –

+0

定時器衝突造成的錯誤是完全不同於這個問題的錯誤,因此討論它是關閉的話題在這裏。看起來這個問題很快就會在Arduino論壇主題上得到解決。 – per1234