Commit | Line | Data |
---|---|---|
3b1e82d2 AW |
1 | /* mbed Microcontroller Library - BusOut |
2 | * Copyright (c) 2007-2009 ARM Limited. All rights reserved. | |
3 | * sford, rmeyer | |
4 | */ | |
5 | ||
6 | #ifndef MBED_BUSOUT_H | |
7 | #define MBED_BUSOUT_H | |
8 | ||
9 | #include "platform.h" | |
10 | #include "PinNames.h" | |
11 | #include "PeripheralNames.h" | |
12 | #include "Base.h" | |
13 | #include "DigitalOut.h" | |
14 | ||
15 | namespace mbed { | |
16 | ||
17 | /* Class: BusOut | |
18 | * A digital output bus, used for setting the state of a collection of pins | |
19 | */ | |
20 | class BusOut : public Base { | |
21 | ||
22 | public: | |
23 | ||
24 | /* Group: Configuration Methods */ | |
25 | ||
26 | /* Constructor: BusOut | |
27 | * Create an BusOut, connected to the specified pins | |
28 | * | |
29 | * Variables: | |
30 | * p<n> - DigitalOut pin to connect to bus bit <n> (p5-p30, NC) | |
31 | * | |
32 | * Note: | |
33 | * It is only required to specify as many pin variables as is required | |
34 | * for the bus; the rest will default to NC (not connected) | |
35 | */ | |
36 | BusOut(PinName p0, PinName p1 = NC, PinName p2 = NC, PinName p3 = NC, | |
37 | PinName p4 = NC, PinName p5 = NC, PinName p6 = NC, PinName p7 = NC, | |
38 | PinName p8 = NC, PinName p9 = NC, PinName p10 = NC, PinName p11 = NC, | |
39 | PinName p12 = NC, PinName p13 = NC, PinName p14 = NC, PinName p15 = NC, | |
40 | const char *name = NULL); | |
41 | ||
42 | BusOut(PinName pins[16], const char *name = NULL); | |
43 | ||
44 | virtual ~BusOut(); | |
45 | ||
46 | /* Group: Access Methods */ | |
47 | ||
48 | /* Function: write | |
49 | * Write the value to the output bus | |
50 | * | |
51 | * Variables: | |
52 | * value - An integer specifying a bit to write for every corresponding DigitalOut pin | |
53 | */ | |
54 | void write(int value); | |
55 | ||
56 | ||
57 | /* Function: read | |
58 | * Read the value currently output on the bus | |
59 | * | |
60 | * Variables: | |
61 | * returns - An integer with each bit corresponding to associated DigitalOut pin setting | |
62 | */ | |
63 | int read(); | |
64 | ||
65 | #ifdef MBED_OPERATORS | |
66 | /* Group: Access Method Shorthand */ | |
67 | ||
68 | /* Function: operator= | |
69 | * A shorthand for <write> | |
70 | */ | |
71 | BusOut& operator= (int v); | |
72 | BusOut& operator= (BusOut& rhs); | |
73 | ||
74 | /* Function: operator int() | |
75 | * A shorthand for <read> | |
76 | */ | |
77 | operator int(); | |
78 | #endif | |
79 | ||
80 | #ifdef MBED_RPC | |
81 | virtual const struct rpc_method *get_rpc_methods(); | |
82 | static struct rpc_class *get_rpc_class(); | |
83 | #endif | |
84 | ||
85 | protected: | |
86 | ||
87 | DigitalOut* _pin[16]; | |
88 | ||
89 | #ifdef MBED_RPC | |
90 | static void construct(const char *arguments, char *res); | |
91 | #endif | |
92 | ||
93 | }; | |
94 | ||
95 | } // namespace mbed | |
96 | ||
97 | #endif | |
98 |