Created
September 15, 2014 10:09
-
-
Save phardy/b4de7675a80fd7c5e835 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| uint16_t MuxShield::digitalReadBank(int mux) | |
| { | |
| digitalWrite(_OUTMD,LOW); | |
| digitalWrite(_S0, LOW); | |
| digitalWrite(_S1, LOW); | |
| digitalWrite(_S2, LOW); | |
| digitalWrite(_S3, LOW); | |
| uint16_t val = 0; | |
| switch (mux) { | |
| case 1: | |
| if (digitalRead(_IO1)) { val = val | 1; } // 0000: 0th bit | |
| digitalWrite(_S0, HIGH); // 1000: 1st bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 2; } | |
| digitalWrite(_S1, HIGH); // 1100: 3rd bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 8; } | |
| digitalWrite(_S0, LOW); // 0100: 2nd bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 4; } | |
| digitalWrite(_S2, HIGH); // 0110: 6th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 64; } | |
| digitalWrite(_S1, LOW); // 0010: 4th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 16; } | |
| digitalWrite(_S0, HIGH); // 1010: 5th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 32; } | |
| digitalWrite(_S1, HIGH); // 1110: 7th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 128; } | |
| digitalWrite(_S3, HIGH); // 1111: 15th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 32516; } | |
| digitalWrite(_S0, LOW); // 0111: 14th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 16258; } | |
| digitalWrite(_S1, LOW); // 0011: 12th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 4096; } | |
| digitalWrite(_S0, HIGH); // 1011: 13th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 8192; } | |
| digitalWrite(_S2, LOW); // 1001: 9th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 512; } | |
| digitalWrite(_S1, HIGH); // 1101: 11th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 2048; } | |
| digitalWrite(_S0, LOW); // 0101: 10th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 1024; } | |
| digitalWrite(_S1, LOW); // 0001: 8th bit | |
| if (digitalRead(_IO1) == HIGH) { val = val | 256; } | |
| digitalWrite(_S3, LOW); // 0000, back to where we started | |
| break; | |
| default: | |
| break; | |
| } | |
| return val; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment