...

Dependents:   2doejemplo Labo_TRSE_Drone

Fork of mbed by mbed official

Committer:
rolf.meyer@arm.com
Date:
Fri Aug 28 12:10:11 2009 +0000
Revision:
11:1c1ebd0324fa
Parent:
5:62573be585e9
Child:
27:7110ebee3484
A shiny new version

Who changed what in which revision?

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