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

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?

UserRevisionLine numberNew 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 };