MCP23S17 Bufferd
ExioInBuffer.h
- Committer:
- ryood
- Date:
- 2016-11-04
- Revision:
- 0:54debc783452
- Child:
- 1:f00bf8a84d56
File content as of revision 0:54debc783452:
/* * ExioInBuffer.h * * Created: 2016.11.05 * */ #ifndef _EXIOINBUFFER_H_ #define _EXIOINBUFFER_H_ #include "mbed.h" #include "rtos.h" #include "ExioMcp23s17.h" class ExioInBuffer { public: ExioInBuffer(ExioMcp23s17* device, ExioPort port, uint32_t interval) : _device(device), _port(port), _interval(interval), _buffer(0x00), _timer(&ExioInBuffer::threadHelper, osTimerPeriodic, (void *)this) { } uint8_t readPort() { return _buffer; } void run() { _timer.start(_interval); } void stop() { _timer.stop(); } protected: ExioMcp23s17* _device; ExioPort _port; uint32_t _interval; uint8_t _buffer; RtosTimer _timer; static void threadHelper(const void* arg) { ExioInBuffer* instance = (ExioInBuffer*)arg; instance->update(); } void update() { _buffer = _device->readPort(_port); } }; #endif //_EXIOINBUFFER_H_