MDテスト用プログラム
Dependencies: FastPWM GMD_template_lib mbed
Fork of NewMD2 by
main.cpp
- Committer:
- inst
- Date:
- 2016-07-10
- Revision:
- 6:004e6174445a
- Parent:
- 5:9d1b1948a9b6
- Child:
- 7:9671d3ae163e
File content as of revision 6:004e6174445a:
#include "mbed.h" #include "GMD.hpp" 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()); basic_motor_driver md(dp1, dp2, dp9); while (true){ char buf; switch (i2c.receive()){ case I2CSlave::ReadAddressed: break; case I2CSlave::WriteGeneral: break; case I2CSlave::WriteAddressed: i2c.read(&buf, 1); /* float p = (buf & 0x80) ? -1.0f : 1.0f; p *= (buf & 0x7F); p *= 1.0f / 0x7F; */ md.set(static_cast<int8_t>(buf) / 127.0f); break; case I2CSlave::NoData: break; } } }