DAISEN eDES see: http://mbed.org/users/okini3939/notebook/daisen-edes/
Diff: eDES2WD.h
- 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; + +};