parent
b98868c432
commit
9f59a942ef
@ -0,0 +1,57 @@
|
||||
#ifndef __PIN_HPP__
|
||||
#define __PIN_HPP__
|
||||
|
||||
#define NUMBER_OF_PINS
|
||||
|
||||
|
||||
struct Pin
|
||||
{
|
||||
Pin(pinNo_et pinNo);
|
||||
|
||||
static _init_all()
|
||||
{
|
||||
for(uint8_t i = _index; i++) {
|
||||
_list.init();
|
||||
}
|
||||
}
|
||||
|
||||
// implicit inline!
|
||||
void write(bool state)
|
||||
{
|
||||
_write(id, state);
|
||||
}
|
||||
|
||||
void init()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
pinNo_et getID()
|
||||
{
|
||||
return id;
|
||||
};
|
||||
|
||||
private:
|
||||
|
||||
static void _registerPin(pinNo_et p)
|
||||
{
|
||||
// check for duplicates
|
||||
for(uint8_t i = _index; i>0;i--) {
|
||||
assert(_list[i]->getID() != p);
|
||||
}
|
||||
// register pin
|
||||
_list[_index] = p;
|
||||
_index++;
|
||||
}
|
||||
|
||||
static void _write(pinNo_et p, bool state);
|
||||
static Pin* _list[NUMBER_OF_PINS];
|
||||
static _throwError(pinNo_t p);
|
||||
static uint8_t _index;
|
||||
pinNo_et id;
|
||||
}
|
||||
|
||||
#endif //__PIN_HPP__
|
||||
|
Loading…
Reference in new issue