DAISEN eDES see: http://mbed.org/users/okini3939/notebook/daisen-edes/

Revision:
1:2a38c9027bd1
Parent:
0:04367044b55e
Child:
2:ef1c45486022
diff -r 04367044b55e -r 2a38c9027bd1 eDES2WD.h
--- a/eDES2WD.h	Fri Jun 08 16:10:50 2012 +0000
+++ b/eDES2WD.h	Sat Dec 15 15:35:30 2012 +0000
@@ -1,54 +1,66 @@
-/**
- * DAISEN eDES 2WD driver for mbed
- * Copyright (c) 2012 Suga
- * Released under the MIT License: http://mbed.org/license/mit
- */
-
-/** @file
- * @brief DAISEN eDES 2WD driver for mbed
- */
-
-#define SUB_ADRS    0x30
-
-#define I2C_WCMD_RESET    0x00
-#define I2C_WCMD_START    0x01
-#define I2C_WCMD_ENQ    0x09
-
-#define I2C_WCMD_IO        0x10
-#define I2C_WCMD_SENSOR    0x11
-#define I2C_WCMD_MOTOR    0x12
-#define I2C_WCMD_LED    0x13
-#define I2C_WCMD_LAT    0x14
-#define I2C_WCMD_T        0x15
-#define I2C_WCMD_V        0x16
-#define I2C_WCMD_DIR    0x17
-#define I2C_WCMD_EG002    0x18
-#define I2C_WCMD_EG003    0x19
-#define I2C_WCMD_EG009    0x1A
-#define I2C_WCMD_LDM    0x1B
-
-#define I2C_RCMD_IO        0x80
-#define I2C_RCMD_SENSOR    0x81
-#define I2C_RCMD_MOTOR    0x82
-#define I2C_RCMD_LED    0x83
-#define I2C_RCMD_LAT    0x84
-#define I2C_RCMD_T        0x85
-#define I2C_RCMD_V        0x86
-#define I2C_RCMD_DIR    0x87
-
-#define MAX_PWM            6
-#define MAX_COL            16
-
-#define MAX_CN        10
-
-#define LED_GREEN    0
-#define LED_RED1    1
-#define LED_RED2    2
-#define LED_RED3    3
-
-void eDES2WD_reset (int id);
-void eDES2WD_motor (int id, int l_speed, int r_speed);
-void eDES2WD_set_led (int id, int led, int sw);
-
-unsigned int eDES2WD_get_sensor(int id, int cn, unsigned int *dat);
-int eDES2WD_get_lat(int id, int cno);
+/**
+ * DAISEN eDES 2WD driver for mbed
+ * Copyright (c) 2012 Suga
+ * Released under the MIT License: http://mbed.org/license/mit
+ */
+
+/** @file
+ * @brief DAISEN eDES 2WD driver for mbed
+ */
+
+#define SUB_ADRS    0x30
+
+#define I2C_WCMD_RESET    0x00
+#define I2C_WCMD_START    0x01
+#define I2C_WCMD_ENQ    0x09
+
+#define I2C_WCMD_IO        0x10
+#define I2C_WCMD_SENSOR    0x11
+#define I2C_WCMD_MOTOR    0x12
+#define I2C_WCMD_LED    0x13
+#define I2C_WCMD_LAT    0x14
+#define I2C_WCMD_T        0x15
+#define I2C_WCMD_V        0x16
+#define I2C_WCMD_DIR    0x17
+#define I2C_WCMD_EG002    0x18
+#define I2C_WCMD_EG003    0x19
+#define I2C_WCMD_EG009    0x1A
+#define I2C_WCMD_LDM    0x1B
+
+#define I2C_RCMD_IO        0x80
+#define I2C_RCMD_SENSOR    0x81
+#define I2C_RCMD_MOTOR    0x82
+#define I2C_RCMD_LED    0x83
+#define I2C_RCMD_LAT    0x84
+#define I2C_RCMD_T        0x85
+#define I2C_RCMD_V        0x86
+#define I2C_RCMD_DIR    0x87
+
+#define MAX_PWM            6
+#define MAX_COL            16
+
+#define MAX_CN        10
+
+#define eDES2WD_ID 1
+
+enum eDES2WD_LED {
+    LED_GREEN = 0,
+    LED_RED,
+    LED_LEFT,
+    LED_RIGHT,
+};
+
+class eDES2WD {
+public:
+    eDES2WD (I2C &i2c);
+    void reset (int id);
+    void motor (int id, int l_speed, int r_speed);
+    void set_led (int id, eDES2WD_LED led, int sw);
+
+    unsigned int get_sensor(int id, int cn, unsigned int *dat);
+    int get_lat(int id, int cno);
+
+private:
+    I2C _i2c;
+
+};