Programme d'utilisation servomotors MX12 V1

Committer:
R66Y
Date:
Fri May 19 14:32:14 2017 +0000
Revision:
0:80df663dd15e
programme pour utiliser les servomoteurs MX12.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
R66Y 0:80df663dd15e 1 /* mbed Microcontroller Library - SPIHalfDuplex
R66Y 0:80df663dd15e 2 * Copyright (c) 2010-2011 ARM Limited. All rights reserved.
R66Y 0:80df663dd15e 3 */
R66Y 0:80df663dd15e 4
R66Y 0:80df663dd15e 5 #ifndef MBED_SPIHALFDUPLEX_H
R66Y 0:80df663dd15e 6 #define MBED_SPIHALFDUPLEX_H
R66Y 0:80df663dd15e 7
R66Y 0:80df663dd15e 8 #include "device.h"
R66Y 0:80df663dd15e 9
R66Y 0:80df663dd15e 10 #if DEVICE_SPI
R66Y 0:80df663dd15e 11
R66Y 0:80df663dd15e 12 #include "SPI.h"
R66Y 0:80df663dd15e 13
R66Y 0:80df663dd15e 14 namespace mbed {
R66Y 0:80df663dd15e 15
R66Y 0:80df663dd15e 16 /* Class: SPIHalfDuplex
R66Y 0:80df663dd15e 17 * A SPI half-duplex master, used for communicating with SPI slave devices
R66Y 0:80df663dd15e 18 * over a shared data line.
R66Y 0:80df663dd15e 19 *
R66Y 0:80df663dd15e 20 * The default format is set to 8-bits for both master and slave, and a
R66Y 0:80df663dd15e 21 * clock frequency of 1MHz
R66Y 0:80df663dd15e 22 *
R66Y 0:80df663dd15e 23 * Most SPI devies will also require Chip Select and Reset signals. These
R66Y 0:80df663dd15e 24 * can be controlled using <DigitalOut> pins.
R66Y 0:80df663dd15e 25 *
R66Y 0:80df663dd15e 26 * Although this is for a shared data line, both MISO and MOSI are defined,
R66Y 0:80df663dd15e 27 * and should be tied together externally to the mbed. This class handles
R66Y 0:80df663dd15e 28 * the tri-stating of the MOSI pin.
R66Y 0:80df663dd15e 29 *
R66Y 0:80df663dd15e 30 * Example:
R66Y 0:80df663dd15e 31 * > // Send a byte to a SPI half-duplex slave, and record the response
R66Y 0:80df663dd15e 32 * >
R66Y 0:80df663dd15e 33 * > #include "mbed.h"
R66Y 0:80df663dd15e 34 * >
R66Y 0:80df663dd15e 35 * > SPIHalfDuplex device(p5, p6, p7) // mosi, miso, sclk
R66Y 0:80df663dd15e 36 * >
R66Y 0:80df663dd15e 37 * > int main() {
R66Y 0:80df663dd15e 38 * > int respone = device.write(0xAA);
R66Y 0:80df663dd15e 39 * > }
R66Y 0:80df663dd15e 40 */
R66Y 0:80df663dd15e 41
R66Y 0:80df663dd15e 42 class SPIHalfDuplex : public SPI {
R66Y 0:80df663dd15e 43
R66Y 0:80df663dd15e 44 public:
R66Y 0:80df663dd15e 45
R66Y 0:80df663dd15e 46 /* Constructor: SPIHalfDuplex
R66Y 0:80df663dd15e 47 * Create a SPI half-duplex master connected to the specified pins
R66Y 0:80df663dd15e 48 *
R66Y 0:80df663dd15e 49 * Variables:
R66Y 0:80df663dd15e 50 * mosi - SPI Master Out, Slave In pin
R66Y 0:80df663dd15e 51 * miso - SPI Master In, Slave Out pin
R66Y 0:80df663dd15e 52 * sclk - SPI Clock pin
R66Y 0:80df663dd15e 53 * name - (optional) A string to identify the object
R66Y 0:80df663dd15e 54 *
R66Y 0:80df663dd15e 55 * Pin Options:
R66Y 0:80df663dd15e 56 * (5, 6, 7) or (11, 12, 13)
R66Y 0:80df663dd15e 57 *
R66Y 0:80df663dd15e 58 * mosi or miso can be specfied as NC if not used
R66Y 0:80df663dd15e 59 */
R66Y 0:80df663dd15e 60 SPIHalfDuplex(PinName mosi, PinName miso, PinName sclk,
R66Y 0:80df663dd15e 61 const char *name = NULL);
R66Y 0:80df663dd15e 62
R66Y 0:80df663dd15e 63 #if 0 // Inherited from SPI - documentation only
R66Y 0:80df663dd15e 64 /* Function: format
R66Y 0:80df663dd15e 65 * Configure the data transmission format
R66Y 0:80df663dd15e 66 *
R66Y 0:80df663dd15e 67 * Variables:
R66Y 0:80df663dd15e 68 * bits - Number of bits per SPI frame (4 - 16)
R66Y 0:80df663dd15e 69 * mode - Clock polarity and phase mode (0 - 3)
R66Y 0:80df663dd15e 70 *
R66Y 0:80df663dd15e 71 * > mode | POL PHA
R66Y 0:80df663dd15e 72 * > -----+--------
R66Y 0:80df663dd15e 73 * > 0 | 0 0
R66Y 0:80df663dd15e 74 * > 1 | 0 1
R66Y 0:80df663dd15e 75 * > 2 | 1 0
R66Y 0:80df663dd15e 76 * > 3 | 1 1
R66Y 0:80df663dd15e 77 */
R66Y 0:80df663dd15e 78 void format(int bits, int mode = 0);
R66Y 0:80df663dd15e 79
R66Y 0:80df663dd15e 80 /* Function: frequency
R66Y 0:80df663dd15e 81 * Set the spi bus clock frequency
R66Y 0:80df663dd15e 82 *
R66Y 0:80df663dd15e 83 * Variables:
R66Y 0:80df663dd15e 84 * hz - SCLK frequency in hz (default = 1MHz)
R66Y 0:80df663dd15e 85 */
R66Y 0:80df663dd15e 86 void frequency(int hz = 1000000);
R66Y 0:80df663dd15e 87 #endif
R66Y 0:80df663dd15e 88
R66Y 0:80df663dd15e 89 /* Function: write
R66Y 0:80df663dd15e 90 * Write to the SPI Slave and return the response
R66Y 0:80df663dd15e 91 *
R66Y 0:80df663dd15e 92 * Variables:
R66Y 0:80df663dd15e 93 * value - Data to be sent to the SPI slave
R66Y 0:80df663dd15e 94 * returns - Response from the SPI slave
R66Y 0:80df663dd15e 95 */
R66Y 0:80df663dd15e 96 virtual int write(int value);
R66Y 0:80df663dd15e 97
R66Y 0:80df663dd15e 98 /* Function: slave_format
R66Y 0:80df663dd15e 99 * Set the number of databits expected from the slave, from 4-16
R66Y 0:80df663dd15e 100 *
R66Y 0:80df663dd15e 101 * Variables:
R66Y 0:80df663dd15e 102 * sbits - Number of expected bits in the slave response
R66Y 0:80df663dd15e 103 */
R66Y 0:80df663dd15e 104 void slave_format(int sbits);
R66Y 0:80df663dd15e 105
R66Y 0:80df663dd15e 106 protected:
R66Y 0:80df663dd15e 107 PinName _mosi;
R66Y 0:80df663dd15e 108 PinName _miso;
R66Y 0:80df663dd15e 109 int _sbits;
R66Y 0:80df663dd15e 110
R66Y 0:80df663dd15e 111 }; // End of class
R66Y 0:80df663dd15e 112
R66Y 0:80df663dd15e 113 } // End of namespace mbed
R66Y 0:80df663dd15e 114
R66Y 0:80df663dd15e 115 #endif
R66Y 0:80df663dd15e 116
R66Y 0:80df663dd15e 117 #endif