DAISEN eDES see: http://mbed.org/users/okini3939/notebook/daisen-edes/
eDES2WD.h@1:2a38c9027bd1, 2012-12-15 (annotated)
- Committer:
- okini3939
- Date:
- Sat Dec 15 15:35:30 2012 +0000
- Revision:
- 1:2a38c9027bd1
- Parent:
- 0:04367044b55e
- Child:
- 2:ef1c45486022
class
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 1:2a38c9027bd1 | 1 | /** |
okini3939 | 1:2a38c9027bd1 | 2 | * DAISEN eDES 2WD driver for mbed |
okini3939 | 1:2a38c9027bd1 | 3 | * Copyright (c) 2012 Suga |
okini3939 | 1:2a38c9027bd1 | 4 | * Released under the MIT License: http://mbed.org/license/mit |
okini3939 | 1:2a38c9027bd1 | 5 | */ |
okini3939 | 1:2a38c9027bd1 | 6 | |
okini3939 | 1:2a38c9027bd1 | 7 | /** @file |
okini3939 | 1:2a38c9027bd1 | 8 | * @brief DAISEN eDES 2WD driver for mbed |
okini3939 | 1:2a38c9027bd1 | 9 | */ |
okini3939 | 1:2a38c9027bd1 | 10 | |
okini3939 | 1:2a38c9027bd1 | 11 | #define SUB_ADRS 0x30 |
okini3939 | 1:2a38c9027bd1 | 12 | |
okini3939 | 1:2a38c9027bd1 | 13 | #define I2C_WCMD_RESET 0x00 |
okini3939 | 1:2a38c9027bd1 | 14 | #define I2C_WCMD_START 0x01 |
okini3939 | 1:2a38c9027bd1 | 15 | #define I2C_WCMD_ENQ 0x09 |
okini3939 | 1:2a38c9027bd1 | 16 | |
okini3939 | 1:2a38c9027bd1 | 17 | #define I2C_WCMD_IO 0x10 |
okini3939 | 1:2a38c9027bd1 | 18 | #define I2C_WCMD_SENSOR 0x11 |
okini3939 | 1:2a38c9027bd1 | 19 | #define I2C_WCMD_MOTOR 0x12 |
okini3939 | 1:2a38c9027bd1 | 20 | #define I2C_WCMD_LED 0x13 |
okini3939 | 1:2a38c9027bd1 | 21 | #define I2C_WCMD_LAT 0x14 |
okini3939 | 1:2a38c9027bd1 | 22 | #define I2C_WCMD_T 0x15 |
okini3939 | 1:2a38c9027bd1 | 23 | #define I2C_WCMD_V 0x16 |
okini3939 | 1:2a38c9027bd1 | 24 | #define I2C_WCMD_DIR 0x17 |
okini3939 | 1:2a38c9027bd1 | 25 | #define I2C_WCMD_EG002 0x18 |
okini3939 | 1:2a38c9027bd1 | 26 | #define I2C_WCMD_EG003 0x19 |
okini3939 | 1:2a38c9027bd1 | 27 | #define I2C_WCMD_EG009 0x1A |
okini3939 | 1:2a38c9027bd1 | 28 | #define I2C_WCMD_LDM 0x1B |
okini3939 | 1:2a38c9027bd1 | 29 | |
okini3939 | 1:2a38c9027bd1 | 30 | #define I2C_RCMD_IO 0x80 |
okini3939 | 1:2a38c9027bd1 | 31 | #define I2C_RCMD_SENSOR 0x81 |
okini3939 | 1:2a38c9027bd1 | 32 | #define I2C_RCMD_MOTOR 0x82 |
okini3939 | 1:2a38c9027bd1 | 33 | #define I2C_RCMD_LED 0x83 |
okini3939 | 1:2a38c9027bd1 | 34 | #define I2C_RCMD_LAT 0x84 |
okini3939 | 1:2a38c9027bd1 | 35 | #define I2C_RCMD_T 0x85 |
okini3939 | 1:2a38c9027bd1 | 36 | #define I2C_RCMD_V 0x86 |
okini3939 | 1:2a38c9027bd1 | 37 | #define I2C_RCMD_DIR 0x87 |
okini3939 | 1:2a38c9027bd1 | 38 | |
okini3939 | 1:2a38c9027bd1 | 39 | #define MAX_PWM 6 |
okini3939 | 1:2a38c9027bd1 | 40 | #define MAX_COL 16 |
okini3939 | 1:2a38c9027bd1 | 41 | |
okini3939 | 1:2a38c9027bd1 | 42 | #define MAX_CN 10 |
okini3939 | 1:2a38c9027bd1 | 43 | |
okini3939 | 1:2a38c9027bd1 | 44 | #define eDES2WD_ID 1 |
okini3939 | 1:2a38c9027bd1 | 45 | |
okini3939 | 1:2a38c9027bd1 | 46 | enum eDES2WD_LED { |
okini3939 | 1:2a38c9027bd1 | 47 | LED_GREEN = 0, |
okini3939 | 1:2a38c9027bd1 | 48 | LED_RED, |
okini3939 | 1:2a38c9027bd1 | 49 | LED_LEFT, |
okini3939 | 1:2a38c9027bd1 | 50 | LED_RIGHT, |
okini3939 | 1:2a38c9027bd1 | 51 | }; |
okini3939 | 1:2a38c9027bd1 | 52 | |
okini3939 | 1:2a38c9027bd1 | 53 | class eDES2WD { |
okini3939 | 1:2a38c9027bd1 | 54 | public: |
okini3939 | 1:2a38c9027bd1 | 55 | eDES2WD (I2C &i2c); |
okini3939 | 1:2a38c9027bd1 | 56 | void reset (int id); |
okini3939 | 1:2a38c9027bd1 | 57 | void motor (int id, int l_speed, int r_speed); |
okini3939 | 1:2a38c9027bd1 | 58 | void set_led (int id, eDES2WD_LED led, int sw); |
okini3939 | 1:2a38c9027bd1 | 59 | |
okini3939 | 1:2a38c9027bd1 | 60 | unsigned int get_sensor(int id, int cn, unsigned int *dat); |
okini3939 | 1:2a38c9027bd1 | 61 | int get_lat(int id, int cno); |
okini3939 | 1:2a38c9027bd1 | 62 | |
okini3939 | 1:2a38c9027bd1 | 63 | private: |
okini3939 | 1:2a38c9027bd1 | 64 | I2C _i2c; |
okini3939 | 1:2a38c9027bd1 | 65 | |
okini3939 | 1:2a38c9027bd1 | 66 | }; |