analogRead return 库中的 0
analogRead return 0 in a library
我想为一个项目创建一个库,我必须在某一时刻做一个模拟读取。我为此创建了一个库,它编译没有任何错误。
但是当我想调用这个函数时,它 return 我是 0,但它在 .ino 文件中工作正常..
这是我的文件:
.ino 文件
#include <Filoguidage.h>
Filoguidage filoguidage;
int pin = A11;
void setup() {
Serial.begin(115200);
pinMode(pin,INPUT);
filoguidage.init(pin,10,10);
}
void loop() {
int test = filoguidage.getPosition();
Serial.println(test);
}
我的库的.h :
#ifndef Filoguidage_h
#define Filoguidage_h
#include "Energia.h"
class Filoguidage
{
public:
void init(int PinCapteur,int valeurCentrale, int interval);
int getPosition();
private:
int _PinCapteur;
};
#endif
最后是 .cpp :
#include "Energia.h"
#include "Filoguidage.h"
void Filoguidage::init(int PinCapteur,int valeurCentrale,int interval){
int _PinCapteur = PinCapteur;
pinMode(_PinCapteur, INPUT);
}
int Filoguidage::getPosition(){
return analogRead( _PinCapteur );
}
我想那是因为pinMode和analogRead不被识别,但我不知道如何解决。如果有人能帮助我,我会很高兴,谢谢
在 Filoguidage::init
中,您将 _PinCapteur
class 成员重新声明为局部变量,因此当您为其设置值时,只会设置函数中的局部变量而您要设置的实际 class 成员将不受影响。
要解决此问题,请将 Filoguidage::init
中的 int _PinCapteur = PinCapteur;
更改为 _PinCapteur = PinCapteur;
。
我想为一个项目创建一个库,我必须在某一时刻做一个模拟读取。我为此创建了一个库,它编译没有任何错误。 但是当我想调用这个函数时,它 return 我是 0,但它在 .ino 文件中工作正常..
这是我的文件:
.ino 文件
#include <Filoguidage.h>
Filoguidage filoguidage;
int pin = A11;
void setup() {
Serial.begin(115200);
pinMode(pin,INPUT);
filoguidage.init(pin,10,10);
}
void loop() {
int test = filoguidage.getPosition();
Serial.println(test);
}
我的库的.h :
#ifndef Filoguidage_h
#define Filoguidage_h
#include "Energia.h"
class Filoguidage
{
public:
void init(int PinCapteur,int valeurCentrale, int interval);
int getPosition();
private:
int _PinCapteur;
};
#endif
最后是 .cpp :
#include "Energia.h"
#include "Filoguidage.h"
void Filoguidage::init(int PinCapteur,int valeurCentrale,int interval){
int _PinCapteur = PinCapteur;
pinMode(_PinCapteur, INPUT);
}
int Filoguidage::getPosition(){
return analogRead( _PinCapteur );
}
我想那是因为pinMode和analogRead不被识别,但我不知道如何解决。如果有人能帮助我,我会很高兴,谢谢
在 Filoguidage::init
中,您将 _PinCapteur
class 成员重新声明为局部变量,因此当您为其设置值时,只会设置函数中的局部变量而您要设置的实际 class 成员将不受影响。
要解决此问题,请将 Filoguidage::init
中的 int _PinCapteur = PinCapteur;
更改为 _PinCapteur = PinCapteur;
。