MDテスト用プログラム

Dependencies:   FastPWM GMD_template_lib mbed

Fork of NewMD2 by tarou yamada

Revision:
0:690d8ed9ee20
Child:
1:29e84d1e7bcc
--- /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;
+        }
+    }
+}