MDテスト用プログラム
Dependencies: FastPWM GMD_template_lib mbed
Fork of NewMD2 by
Diff: main.cpp
- Revision:
- 0:690d8ed9ee20
- Child:
- 1:29e84d1e7bcc
diff -r 000000000000 -r 690d8ed9ee20 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Jul 01 06:31:56 2016 +0000 @@ -0,0 +1,48 @@ +#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; + for (size_t i = 0; i < din_num; ++i) { + address |= din[i].read() << (i + 2); + } + return address; +} + +int main(){ + I2CSlave i2c(dp5, dp27); + i2c.address(read_address()); + GMD 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(p); + break; + + case I2CSlave::NoData: + break; + } + } +}