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 - DigitalInOut
slowness 0:c03cffe402df 2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved.
slowness 0:c03cffe402df 3 */
slowness 0:c03cffe402df 4
slowness 0:c03cffe402df 5 #ifndef MBED_DIGITALINOUT_H
slowness 0:c03cffe402df 6 #define MBED_DIGITALINOUT_H
slowness 0:c03cffe402df 7
slowness 0:c03cffe402df 8 #include "platform.h"
slowness 0:c03cffe402df 9 #include "PinNames.h"
slowness 0:c03cffe402df 10 #include "PeripheralNames.h"
slowness 0:c03cffe402df 11 #include "Base.h"
slowness 0:c03cffe402df 12
slowness 0:c03cffe402df 13 namespace mbed {
slowness 0:c03cffe402df 14
slowness 0:c03cffe402df 15 /* Class: DigitalInOut
slowness 0:c03cffe402df 16 * A digital input/output, used for setting or reading a bi-directional pin
slowness 0:c03cffe402df 17 */
slowness 0:c03cffe402df 18 class DigitalInOut : public Base {
slowness 0:c03cffe402df 19
slowness 0:c03cffe402df 20 public:
slowness 0:c03cffe402df 21
slowness 0:c03cffe402df 22 /* Constructor: DigitalInOut
slowness 0:c03cffe402df 23 * Create a DigitalInOut connected to the specified pin
slowness 0:c03cffe402df 24 *
slowness 0:c03cffe402df 25 * Variables:
slowness 0:c03cffe402df 26 * pin - DigitalInOut pin to connect to
slowness 0:c03cffe402df 27 */
slowness 0:c03cffe402df 28 DigitalInOut(PinName pin, const char* name = NULL);
slowness 0:c03cffe402df 29
slowness 0:c03cffe402df 30 /* Function: write
slowness 0:c03cffe402df 31 * Set the output, specified as 0 or 1 (int)
slowness 0:c03cffe402df 32 *
slowness 0:c03cffe402df 33 * Variables:
slowness 0:c03cffe402df 34 * value - An integer specifying the pin output value,
slowness 0:c03cffe402df 35 * 0 for logical 0 and 1 (or any other non-zero value) for logical 1
slowness 0:c03cffe402df 36 */
slowness 0:c03cffe402df 37 void write(int value) {
slowness 0:c03cffe402df 38 #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
slowness 0:c03cffe402df 39
slowness 0:c03cffe402df 40 if(value) {
slowness 0:c03cffe402df 41 _gpio->FIOSET = _mask;
slowness 0:c03cffe402df 42 } else {
slowness 0:c03cffe402df 43 _gpio->FIOCLR = _mask;
slowness 0:c03cffe402df 44 }
slowness 0:c03cffe402df 45
slowness 0:c03cffe402df 46 #elif defined(TARGET_LPC11U24)
slowness 0:c03cffe402df 47
slowness 0:c03cffe402df 48 if(value) {
slowness 0:c03cffe402df 49 LPC_GPIO->SET[_index] = _mask;
slowness 0:c03cffe402df 50 } else {
slowness 0:c03cffe402df 51 LPC_GPIO->CLR[_index] = _mask;
slowness 0:c03cffe402df 52 }
slowness 0:c03cffe402df 53 #endif
slowness 0:c03cffe402df 54 }
slowness 0:c03cffe402df 55
slowness 0:c03cffe402df 56 /* Function: read
slowness 0:c03cffe402df 57 * Return the output setting, represented as 0 or 1 (int)
slowness 0:c03cffe402df 58 *
slowness 0:c03cffe402df 59 * Variables:
slowness 0:c03cffe402df 60 * returns - An integer representing the output setting of the pin if it is an output,
slowness 0:c03cffe402df 61 * or read the input if set as an input
slowness 0:c03cffe402df 62 */
slowness 0:c03cffe402df 63 int read() {
slowness 0:c03cffe402df 64 #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
slowness 0:c03cffe402df 65
slowness 0:c03cffe402df 66 return ((_gpio->FIOPIN & _mask) ? 1 : 0);
slowness 0:c03cffe402df 67 #elif defined(TARGET_LPC11U24)
slowness 0:c03cffe402df 68 return ((LPC_GPIO->PIN[_index] & _mask) ? 1 : 0);
slowness 0:c03cffe402df 69 #endif
slowness 0:c03cffe402df 70 }
slowness 0:c03cffe402df 71
slowness 0:c03cffe402df 72
slowness 0:c03cffe402df 73 /* Function: output
slowness 0:c03cffe402df 74 * Set as an output
slowness 0:c03cffe402df 75 */
slowness 0:c03cffe402df 76 void output();
slowness 0:c03cffe402df 77
slowness 0:c03cffe402df 78 /* Function: input
slowness 0:c03cffe402df 79 * Set as an input
slowness 0:c03cffe402df 80 */
slowness 0:c03cffe402df 81 void input();
slowness 0:c03cffe402df 82
slowness 0:c03cffe402df 83 /* Function: mode
slowness 0:c03cffe402df 84 * Set the input pin mode
slowness 0:c03cffe402df 85 *
slowness 0:c03cffe402df 86 * Variables:
slowness 0:c03cffe402df 87 * mode - PullUp, PullDown, PullNone, OpenDrain
slowness 0:c03cffe402df 88 */
slowness 0:c03cffe402df 89 void mode(PinMode pull);
slowness 0:c03cffe402df 90
slowness 0:c03cffe402df 91 #ifdef MBED_OPERATORS
slowness 0:c03cffe402df 92 /* Function: operator=
slowness 0:c03cffe402df 93 * A shorthand for <write>
slowness 0:c03cffe402df 94 */
slowness 0:c03cffe402df 95 DigitalInOut& operator= (int value) {
slowness 0:c03cffe402df 96 write(value);
slowness 0:c03cffe402df 97 return *this;
slowness 0:c03cffe402df 98 }
slowness 0:c03cffe402df 99
slowness 0:c03cffe402df 100 DigitalInOut& operator= (DigitalInOut& rhs) {
slowness 0:c03cffe402df 101 write(rhs.read());
slowness 0:c03cffe402df 102 return *this;
slowness 0:c03cffe402df 103 }
slowness 0:c03cffe402df 104
slowness 0:c03cffe402df 105 /* Function: operator int()
slowness 0:c03cffe402df 106 * A shorthand for <read>
slowness 0:c03cffe402df 107 */
slowness 0:c03cffe402df 108 operator int() {
slowness 0:c03cffe402df 109 return read();
slowness 0:c03cffe402df 110 }
slowness 0:c03cffe402df 111 #endif
slowness 0:c03cffe402df 112
slowness 0:c03cffe402df 113 #ifdef MBED_RPC
slowness 0:c03cffe402df 114 virtual const struct rpc_method *get_rpc_methods();
slowness 0:c03cffe402df 115 static struct rpc_class *get_rpc_class();
slowness 0:c03cffe402df 116 #endif
slowness 0:c03cffe402df 117
slowness 0:c03cffe402df 118 protected:
slowness 0:c03cffe402df 119
slowness 0:c03cffe402df 120 PinName _pin;
slowness 0:c03cffe402df 121
slowness 0:c03cffe402df 122 #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
slowness 0:c03cffe402df 123 LPC_GPIO_TypeDef *_gpio;
slowness 0:c03cffe402df 124 #elif defined(TARGET_LPC11U24)
slowness 0:c03cffe402df 125 int _index;
slowness 0:c03cffe402df 126 #endif
slowness 0:c03cffe402df 127
slowness 0:c03cffe402df 128 uint32_t _mask;
slowness 0:c03cffe402df 129
slowness 0:c03cffe402df 130 };
slowness 0:c03cffe402df 131
slowness 0:c03cffe402df 132 } // namespace mbed
slowness 0:c03cffe402df 133
slowness 0:c03cffe402df 134 #endif