Lab 1 Program C

Dependents:   Lab1C

Fork of mbed by -deleted-

Committer:
mattsims12
Date:
Tue Sep 29 03:04:58 2015 +0000
Revision:
44:1c5f591fce58
Parent:
43:aff670d0d510
Lab 1 Program C

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