config AX12

Fork of configure_ax12_test_bras_module by CRAC Team

Committer:
slowness
Date:
Wed Feb 03 14:01:53 2016 +0000
Revision:
0:c03cffe402df
Pour configurer les AX12 avec la carte NXP1768 sur les Pin 9 et 10

Who changed what in which revision?

UserRevisionLine numberNew contents of line
slowness 0:c03cffe402df 1 /* mbed Microcontroller Library - I2C
slowness 0:c03cffe402df 2 * Copyright (c) 2007-2011 ARM Limited. All rights reserved.
slowness 0:c03cffe402df 3 */
slowness 0:c03cffe402df 4
slowness 0:c03cffe402df 5 #ifndef MBED_I2C_H
slowness 0:c03cffe402df 6 #define MBED_I2C_H
slowness 0:c03cffe402df 7
slowness 0:c03cffe402df 8 #include "device.h"
slowness 0:c03cffe402df 9
slowness 0:c03cffe402df 10 #if DEVICE_I2C
slowness 0:c03cffe402df 11
slowness 0:c03cffe402df 12 #include "platform.h"
slowness 0:c03cffe402df 13 #include "PinNames.h"
slowness 0:c03cffe402df 14 #include "PeripheralNames.h"
slowness 0:c03cffe402df 15 #include "Base.h"
slowness 0:c03cffe402df 16
slowness 0:c03cffe402df 17 namespace mbed {
slowness 0:c03cffe402df 18
slowness 0:c03cffe402df 19 /* Class: I2C
slowness 0:c03cffe402df 20 * An I2C Master, used for communicating with I2C slave devices
slowness 0:c03cffe402df 21 *
slowness 0:c03cffe402df 22 * Example:
slowness 0:c03cffe402df 23 * > // Read from I2C slave at address 0x62
slowness 0:c03cffe402df 24 * >
slowness 0:c03cffe402df 25 * > #include "mbed.h"
slowness 0:c03cffe402df 26 * >
slowness 0:c03cffe402df 27 * > I2C i2c(p28, p27);
slowness 0:c03cffe402df 28 * >
slowness 0:c03cffe402df 29 * > int main() {
slowness 0:c03cffe402df 30 * > int address = 0x62;
slowness 0:c03cffe402df 31 * > char data[2];
slowness 0:c03cffe402df 32 * > i2c.read(address, data, 2);
slowness 0:c03cffe402df 33 * > }
slowness 0:c03cffe402df 34 */
slowness 0:c03cffe402df 35 class I2C : public Base {
slowness 0:c03cffe402df 36
slowness 0:c03cffe402df 37 public:
slowness 0:c03cffe402df 38
slowness 0:c03cffe402df 39 enum RxStatus {
slowness 0:c03cffe402df 40 NoData
slowness 0:c03cffe402df 41 , MasterGeneralCall
slowness 0:c03cffe402df 42 , MasterWrite
slowness 0:c03cffe402df 43 , MasterRead
slowness 0:c03cffe402df 44 };
slowness 0:c03cffe402df 45
slowness 0:c03cffe402df 46 enum Acknowledge {
slowness 0:c03cffe402df 47 NoACK = 0
slowness 0:c03cffe402df 48 , ACK = 1
slowness 0:c03cffe402df 49 };
slowness 0:c03cffe402df 50
slowness 0:c03cffe402df 51 /* Constructor: I2C
slowness 0:c03cffe402df 52 * Create an I2C Master interface, connected to the specified pins
slowness 0:c03cffe402df 53 *
slowness 0:c03cffe402df 54 * Variables:
slowness 0:c03cffe402df 55 * sda - I2C data line pin
slowness 0:c03cffe402df 56 * scl - I2C clock line pin
slowness 0:c03cffe402df 57 */
slowness 0:c03cffe402df 58 I2C(PinName sda, PinName scl, const char *name = NULL);
slowness 0:c03cffe402df 59
slowness 0:c03cffe402df 60 /* Function: frequency
slowness 0:c03cffe402df 61 * Set the frequency of the I2C interface
slowness 0:c03cffe402df 62 *
slowness 0:c03cffe402df 63 * Variables:
slowness 0:c03cffe402df 64 * hz - The bus frequency in hertz
slowness 0:c03cffe402df 65 */
slowness 0:c03cffe402df 66 void frequency(int hz);
slowness 0:c03cffe402df 67
slowness 0:c03cffe402df 68 /* Function: read
slowness 0:c03cffe402df 69 * Read from an I2C slave
slowness 0:c03cffe402df 70 *
slowness 0:c03cffe402df 71 * Performs a complete read transaction. The bottom bit of
slowness 0:c03cffe402df 72 * the address is forced to 1 to indicate a read.
slowness 0:c03cffe402df 73 *
slowness 0:c03cffe402df 74 * Variables:
slowness 0:c03cffe402df 75 * address - 8-bit I2C slave address [ addr | 1 ]
slowness 0:c03cffe402df 76 * data - Pointer to the byte-array to read data in to
slowness 0:c03cffe402df 77 * length - Number of bytes to read
slowness 0:c03cffe402df 78 * repeated - Repeated start, true - don't send stop at end
slowness 0:c03cffe402df 79 * returns - 0 on success (ack), or non-0 on failure (nack)
slowness 0:c03cffe402df 80 */
slowness 0:c03cffe402df 81 int read(int address, char *data, int length, bool repeated = false);
slowness 0:c03cffe402df 82
slowness 0:c03cffe402df 83 /* Function: read
slowness 0:c03cffe402df 84 * Read a single byte from the I2C bus
slowness 0:c03cffe402df 85 *
slowness 0:c03cffe402df 86 * Variables:
slowness 0:c03cffe402df 87 * ack - indicates if the byte is to be acknowledged (1 = acknowledge)
slowness 0:c03cffe402df 88 * returns - the byte read
slowness 0:c03cffe402df 89 */
slowness 0:c03cffe402df 90 int read(int ack);
slowness 0:c03cffe402df 91
slowness 0:c03cffe402df 92 /* Function: write
slowness 0:c03cffe402df 93 * Write to an I2C slave
slowness 0:c03cffe402df 94 *
slowness 0:c03cffe402df 95 * Performs a complete write transaction. The bottom bit of
slowness 0:c03cffe402df 96 * the address is forced to 0 to indicate a write.
slowness 0:c03cffe402df 97 *
slowness 0:c03cffe402df 98 * Variables:
slowness 0:c03cffe402df 99 * address - 8-bit I2C slave address [ addr | 0 ]
slowness 0:c03cffe402df 100 * data - Pointer to the byte-array data to send
slowness 0:c03cffe402df 101 * length - Number of bytes to send
slowness 0:c03cffe402df 102 * repeated - Repeated start, true - do not send stop at end
slowness 0:c03cffe402df 103 * returns - 0 on success (ack), or non-0 on failure (nack)
slowness 0:c03cffe402df 104 */
slowness 0:c03cffe402df 105 int write(int address, const char *data, int length, bool repeated = false);
slowness 0:c03cffe402df 106
slowness 0:c03cffe402df 107 /* Function: write
slowness 0:c03cffe402df 108 * Write single byte out on the I2C bus
slowness 0:c03cffe402df 109 *
slowness 0:c03cffe402df 110 * Variables:
slowness 0:c03cffe402df 111 * data - data to write out on bus
slowness 0:c03cffe402df 112 * returns - a '1' if an ACK was received, a '0' otherwise
slowness 0:c03cffe402df 113 */
slowness 0:c03cffe402df 114 int write(int data);
slowness 0:c03cffe402df 115
slowness 0:c03cffe402df 116 /* Function: start
slowness 0:c03cffe402df 117 * Creates a start condition on the I2C bus
slowness 0:c03cffe402df 118 */
slowness 0:c03cffe402df 119
slowness 0:c03cffe402df 120 void start(void);
slowness 0:c03cffe402df 121
slowness 0:c03cffe402df 122 /* Function: stop
slowness 0:c03cffe402df 123 * Creates a stop condition on the I2C bus
slowness 0:c03cffe402df 124 */
slowness 0:c03cffe402df 125 void stop(void);
slowness 0:c03cffe402df 126
slowness 0:c03cffe402df 127 protected:
slowness 0:c03cffe402df 128
slowness 0:c03cffe402df 129 void aquire();
slowness 0:c03cffe402df 130
slowness 0:c03cffe402df 131 I2CName _i2c;
slowness 0:c03cffe402df 132 static I2C *_owner;
slowness 0:c03cffe402df 133 int _hz;
slowness 0:c03cffe402df 134
slowness 0:c03cffe402df 135 };
slowness 0:c03cffe402df 136
slowness 0:c03cffe402df 137 } // namespace mbed
slowness 0:c03cffe402df 138
slowness 0:c03cffe402df 139 #endif
slowness 0:c03cffe402df 140
slowness 0:c03cffe402df 141 #endif
slowness 0:c03cffe402df 142