Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
BusIn.h
00001 #ifndef CPP_TO_PIGPIO_BUSIN_HEADER 00002 #define CPP_TO_PIGPIO_BUSIN_HEADER 00003 #include <vector> 00004 namespace CPPToPigpio{ 00005 /** 00006 * BusIn is used to create a number of DigitalIn pins that can be read as one value. 00007 */ 00008 00009 class BusIn : public CPPToPigpio{ 00010 private: 00011 std::vector<DigitalIn *> _digitalIns; 00012 public: 00013 /** 00014 * Creates a BusIn, connected to the specific pins. 00015 * 00016 * @param p0 DigitalIn pin to connect to bus bit 00017 * @param p1 DigitalIn pin to connect to bus bit 00018 * @param p2 DigitalIn pin to connect to bus bit 00019 * @param p4 DigitalIn pin to connect to bus bit 00020 * @param p5 DigitalIn pin to connect to bus bit 00021 * @param p6 DigitalIn pin to connect to bus bit 00022 * @param p7 DigitalIn pin to connect to bus bit 00023 * @param p8 DigitalIn pin to connect to bus bit 00024 * @param p9 DigitalIn pin to connect to bus bit 00025 * @param p10 DigitalIn pin to connect to bus bit 00026 * @param p11 DigitalIn pin to connect to bus bit 00027 * @param p12 DigitalIn pin to connect to bus bit 00028 * @param p13 DigitalIn pin to connect to bus bit 00029 * @param p14 DigitalIn pin to connect to bus bit 00030 * @param p15 DigitalIn pin to connect to bus bit 00031 */ 00032 BusIn (PinName p0, PinName p1=NC, PinName p2=NC, PinName p3=NC, PinName p4=NC, PinName p5=NC, PinName p6=NC, PinName p7=NC, PinName p8=NC, PinName p9=NC, PinName p10=NC, PinName p11=NC, PinName p12=NC, PinName p13=NC, PinName p14=NC, PinName p15=NC); 00033 00034 /** 00035 * Creates a BusIn, connected to the specific pins. 00036 * 00037 * @param p0 DigitalIn pin to connect to bus bit 00038 * @param p1 DigitalIn pin to connect to bus bit 00039 * @param p2 DigitalIn pin to connect to bus bit 00040 * @param p4 DigitalIn pin to connect to bus bit 00041 * @param p5 DigitalIn pin to connect to bus bit 00042 * @param p6 DigitalIn pin to connect to bus bit 00043 * @param p7 DigitalIn pin to connect to bus bit 00044 * @param p8 DigitalIn pin to connect to bus bit 00045 * @param p9 DigitalIn pin to connect to bus bit 00046 * @param p10 DigitalIn pin to connect to bus bit 00047 * @param p11 DigitalIn pin to connect to bus bit 00048 * @param p12 DigitalIn pin to connect to bus bit 00049 * @param p13 DigitalIn pin to connect to bus bit 00050 * @param p14 DigitalIn pin to connect to bus bit 00051 * @param p15 DigitalIn pin to connect to bus bit 00052 */ 00053 BusIn (int p0, int p1=-1, int p2=-1, int p3=-1, int p4=-1, int p5=-1, int p6=-1, int p7=-1, int p8=-1, int p9=-1, int p10=-1, int p11=-1, int p12=-1, int p13=-1, int p14=-1, int p15=-1); 00054 00055 /** 00056 * Creates a BusIn, connected to the specific pins. 00057 * @param number of pins specified 00058 * @param array of pins to connect to bus 00059 */ 00060 00061 //This is different from standard MBED API. Since the literal 0 is a valid pinName, need busSize to be passed in to tell which pins matter. 00062 BusIn (int busSize, PinName pinNames[16]); 00063 00064 /** 00065 * Creates a BusIn, connected to the specific pins. 00066 * @param number of pins specified 00067 * @param array of pins to connect to bus 00068 */ 00069 00070 //This is different from standard MBED API. Since the literal 0 is a valid pinName, need busSize to be passed in to tell which pins matter. 00071 BusIn (int busSize, int pinNames[16]); 00072 00073 /** 00074 * Read value of input pins 00075 * 00076 * @returns An integer with each bit corresponding to the value read from the associated DigitalIn pin 00077 */ 00078 int read(); 00079 00080 /** 00081 * Sets the input pin mode for all pins in the bus 00082 * 00083 * @param pull PullUp, PullDown, PullNone 00084 */ 00085 void mode(PinMode pull); 00086 00087 /** A shorthand for read() 00088 * \sa BusOut::read() 00089 */ 00090 operator int(); 00091 00092 /** Access to particular bit in random-iterator fashion 00093 * 00094 * @param index or position of bit 00095 */ 00096 DigitalIn & operator[](int index); 00097 00098 /** Binary mask of bus pins connected to actual pins (not NC pins) 00099 * If bus pin is in NC state make corresponding bit will be cleared (set to 0), else bit will be set to 1 00100 * 00101 * @returns Binary mask of connected pins 00102 */ 00103 //Returns mask of connected pins, double check that this matches what it should do. Note that since 0 is valid, mask of BusIn(0) will return 0b000..1 and mask(BusIn(1)) returns 0b000..10 00104 long long mask(); 00105 00106 /** Desconstructor for object 00107 */ 00108 ~BusIn(); 00109 00110 }; 00111 00112 00113 } 00114 #endif
Generated on Tue Jul 12 2022 14:39:23 by
1.7.2