Serial.h
void attach (void(*fptr)(void), IrqType type=RxIrq);
template<typename T>
void attach (T *tptr, void(T::*mptr)(void), IrqType type=RxIrq);
controler.h
class Controler {
public:
Controler(PinName pinTx, PinName pinRx);
private:
Serial _device;
};
controler.cpp
void Controler::attachRx()
{
rxBuffer[rxVolume++] = _device.getc();
}
Controler::Controler(PinName pinTx, PinName pinRx) : _device(pinTx, pinRx) {
Serial *p;
p = &(_device);
p->attach(this, &Controler::attachRx, Serial::RxIrq);
}
Controlerクラス内のvoid Controler::attachRx()を関数ポインタ渡しするため、
_device.attach(&attachRx, Serial::RxIrq);
と宣言しても通らなかったため、回避方法として。。。