初始化提交
This commit is contained in:
86
arduino-cli/libraries/Fast/Fast.h
Normal file
86
arduino-cli/libraries/Fast/Fast.h
Normal file
@@ -0,0 +1,86 @@
|
||||
|
||||
///
|
||||
/// Fast and simple IO library for Arduino compatible boards.
|
||||
/// Not the fastest, but simplest to use (for me at least).
|
||||
/// Created for personal use, use it at your own risk and benefit.
|
||||
/// https://github.com/GitMoDu/Fast
|
||||
///
|
||||
|
||||
#ifndef _FAST_h
|
||||
#define _FAST_h
|
||||
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
class Fast
|
||||
{
|
||||
|
||||
protected:
|
||||
#define INVALID_PIN 254
|
||||
uint8_t *Mode;
|
||||
volatile uint8_t *OutPin;
|
||||
volatile uint8_t *InPin;
|
||||
uint8_t PinAddressMaskOn, PinAddressMaskOff;
|
||||
|
||||
bool Get();
|
||||
|
||||
public:
|
||||
Fast(const uint8_t pin = INVALID_PIN);
|
||||
bool virtual Setup(const uint8_t pin);
|
||||
};
|
||||
|
||||
class FastOut : public Fast
|
||||
{
|
||||
public:
|
||||
FastOut(const uint8_t pin = INVALID_PIN, const bool startValue = false);
|
||||
FastOut& operator = (boolean value)
|
||||
{
|
||||
Set(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool Setup(const uint8_t pin, const bool startValue);
|
||||
void Set(const bool value);
|
||||
void Toggle();
|
||||
};
|
||||
|
||||
class FastOutCached : public FastOut
|
||||
{
|
||||
private:
|
||||
bool LastValueCache = false;
|
||||
|
||||
public:
|
||||
FastOutCached(const uint8_t pin = INVALID_PIN, const bool startValue = false);
|
||||
FastOutCached& operator = (boolean value)
|
||||
{
|
||||
Set(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool Setup(const uint8_t pin, const bool startValue = false);
|
||||
void Set(const bool value);
|
||||
void Toggle();
|
||||
};
|
||||
|
||||
class FastIn : public Fast
|
||||
{
|
||||
public:
|
||||
FastIn(const uint8_t pin = INVALID_PIN, const bool startValue = false);
|
||||
|
||||
operator bool() {
|
||||
return Get();
|
||||
}
|
||||
};
|
||||
|
||||
class FastShifter : public FastOut
|
||||
{
|
||||
public:
|
||||
virtual bool Setup(const uint8_t pin, const bool startValue = false);
|
||||
void PulseLow();
|
||||
void PulseHigh();
|
||||
void PulseLow(const uint16_t pulseIntervalMicros);
|
||||
void PulseHigh(const int16_t pulseIntervalMicros);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user