Lave arduino bibliotek
Jeg er ved at lave et arduino bibliotek og er rendt ind i problemer.Biblioteket er lavet med en class hvor en function kalder en anden function i samme class. Det har jeg set man kan gøre hvis den kaldte function er defineret som static
Bee_spi.h
class Bee_spi
{
public:
Bee_spi();
void SetTime(int Hour,int Minute,int Date,int Month,int Year);
static void writeRegisterTime(byte thisRegister, char thisValue);
static void writeRegister(byte thisRegister, char thisValue);
void CSsetup(int UrPin,int KgPin);
private:
static int _UrPin;
static int _KgPin;
};
Bee_spi.cpp
void SetTime(int Hour,int Minute,int Date,int Month,int Year)
{
Bee_spi::writeRegisterTime(0x80, 30); // Setup sekunder register
}
Det virker, men er det ikke også den rigtige måde at gøre det på ?
Problemet er private variabler, det virker ikke at definere dem som static
static int _UrPin;
static int _KgPin;
Dem kalder jeg her
void Bee_spi::CSsetup(int UrPin,int KgPin)
{
pinMode(UrPin, OUTPUT); // Ur
digitalWrite(UrPin, LOW);
pinMode(KgPin, OUTPUT); // Til vejecelle
digitalWrite(KgPin, HIGH);
_UrPin = UrPin;
_KgPin = KgPin;
}
og her
void writeRegister(byte thisRegister, char thisValue)
{
digitalWrite(_UrPin, HIGH);
SPI.transfer(thisRegister);
SPI.transfer(thisValue);
digitalWrite(_UrPin, LOW);
}
Hvordan gør jeg det ?
Her er fejlmeddelsen
In function 'void writeRegister(byte, char)':
Bee_spi.cpp:61:18: error: '_UrPin' was not declared in this scope
digitalWrite(_UrPin, HIGH);