
Gifu Valve Driver
Dependencies: BitAccess GVD mbed
main.cpp
- Committer:
- moneneholic
- Date:
- 2016-08-04
- Revision:
- 0:0a51d4f7c853
File content as of revision 0:0a51d4f7c853:
#include "mbed.h" #include "GVD.hpp" #include "BitAccess.h" char read_address() { const size_t din_num = 4; DigitalIn din[] = { DigitalIn(dp26), DigitalIn(dp25), DigitalIn(dp18), DigitalIn(dp17) }; char address = 0; size_t address_offset = 0x08 << 1; for (size_t i = 0; i < din_num; ++i) { address |= din[i].read() << (i + 1); } return address + address_offset; } int main(){ I2CSlave i2c(dp5, dp27); i2c.address(read_address()); GVD vd(dp11,dp2,dp9,dp6,dp4,dp10,dp1,dp13); BitAccess byte; while (true){ char buf; switch (i2c.receive()){ case I2CSlave::ReadAddressed: break; case I2CSlave::WriteGeneral: break; case I2CSlave::WriteAddressed: i2c.read(&buf, 1); byte.setByte(buf); vd.write(byte.b0,byte.b1,byte.b2,byte.b3,byte.b4,byte.b5,byte.b6,byte.b7); break; case I2CSlave::NoData: break; } } }