0

プロジェクト用にいくつかのクラスを作成していますが、これは非常に具体的であるため、libraryフォルダーに保持したくありません。それらはほとんど機能していますが、Arduino関数またはconstsを呼び出したい場合は、「このスコープで宣言されていません」というエラーがスローされます。

スケッチ:

#include "MyClass.h"
void setup(){
}
void loop(){
}

MyClass.h

class MyClass{
    public:
        MyClass(int inp);
        int myFun();
};

MyClass.cpp

#include "MyClass.h"
#include <WProgram.h>

MyClass::MyClass(int inp){
    pinMode(13,HIGH);

}

エラー:

MyClass.cpp:'HIGH'、'pinMode'はこのスコープでは宣言されていません。

ただし、ライブラリをライブラリフォルダに入れても発生しません。スケッチフォルダライブラリにarduino関数を含める方法があるかどうか疑問に思っていますか?

4

2 に答える 2

0

実際、私は別のライブラリを調べることで、それを機能させることができます:Pの代わりに

 #include <WProgram.h>

使用する必要があります

#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

私が思うに、これは下位互換性にとって悪いことです...

また、スケッチフォルダでライブラリを使用することに関しては問題ありません。ただし、スケッチフォルダライブラリにはいくつかの潜在的な問題があります。

于 2013-01-19T11:26:26.220 に答える
0

AFAIKには、Arduino-lib-folder以外にyoutライブラリを配置する方法はありません。UNIXを使用している場合は、ライブラリをスケッチフォルダーに配置し、Arduino-libフォルダーにこれらのライブラリへのリンクを作成できます ln。次に、IDEでもそれらを確認する必要があります

于 2013-01-19T11:01:31.630 に答える