2
Dependencies: mbed DevInterfaces MCP4728 MCP4728setaddr I2Cinterfaces
shutter.cpp@7:e649bb2b6187, 2019-02-04 (annotated)
- Committer:
- kstokely
- Date:
- Mon Feb 04 14:24:10 2019 +0000
- Revision:
- 7:e649bb2b6187
Before changing to 4 channel separation
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kstokely | 7:e649bb2b6187 | 1 | #include "shutter.h" |
kstokely | 7:e649bb2b6187 | 2 | |
kstokely | 7:e649bb2b6187 | 3 | //Constructor |
kstokely | 7:e649bb2b6187 | 4 | Shutter::Shutter() |
kstokely | 7:e649bb2b6187 | 5 | { |
kstokely | 7:e649bb2b6187 | 6 | } |
kstokely | 7:e649bb2b6187 | 7 | |
kstokely | 7:e649bb2b6187 | 8 | |
kstokely | 7:e649bb2b6187 | 9 | void Shutter::init( DigitalOut* SH1_1, DigitalOut* SH1_2, DigitalOut* SH2_1, DigitalOut* SH2_2, DigitalOut* SH3_1, DigitalOut* SH3_2, DigitalOut* SH4_1, DigitalOut* SH4_2 ) |
kstokely | 7:e649bb2b6187 | 10 | { |
kstokely | 7:e649bb2b6187 | 11 | SH_ARR[0] = SH1_1; |
kstokely | 7:e649bb2b6187 | 12 | SH_ARR[1] = SH1_2; |
kstokely | 7:e649bb2b6187 | 13 | SH_ARR[2] = SH2_1; |
kstokely | 7:e649bb2b6187 | 14 | SH_ARR[3] = SH2_2; |
kstokely | 7:e649bb2b6187 | 15 | SH_ARR[4] = SH3_1; |
kstokely | 7:e649bb2b6187 | 16 | SH_ARR[5] = SH3_2; |
kstokely | 7:e649bb2b6187 | 17 | SH_ARR[6] = SH4_1; |
kstokely | 7:e649bb2b6187 | 18 | SH_ARR[7] = SH4_2; |
kstokely | 7:e649bb2b6187 | 19 | |
kstokely | 7:e649bb2b6187 | 20 | writeShutters( 0, 0, 0, 0 ); //intial State |
kstokely | 7:e649bb2b6187 | 21 | } |
kstokely | 7:e649bb2b6187 | 22 | |
kstokely | 7:e649bb2b6187 | 23 | void Shutter::toggleShutter( int SHnum ) |
kstokely | 7:e649bb2b6187 | 24 | { |
kstokely | 7:e649bb2b6187 | 25 | if (SHnum < 8 && SHnum > 0) |
kstokely | 7:e649bb2b6187 | 26 | { |
kstokely | 7:e649bb2b6187 | 27 | int a1 = *SH_ARR[ SHnum - 1]; |
kstokely | 7:e649bb2b6187 | 28 | int a2 = *SH_ARR[ SHnum ]; |
kstokely | 7:e649bb2b6187 | 29 | |
kstokely | 7:e649bb2b6187 | 30 | if ( a1 == 1 && a2 == 0 ) |
kstokely | 7:e649bb2b6187 | 31 | { |
kstokely | 7:e649bb2b6187 | 32 | *SH_ARR[ SHnum - 1] = 0; |
kstokely | 7:e649bb2b6187 | 33 | *SH_ARR[ SHnum ] = 1; |
kstokely | 7:e649bb2b6187 | 34 | } |
kstokely | 7:e649bb2b6187 | 35 | |
kstokely | 7:e649bb2b6187 | 36 | else if( a1 == 0 && a2 == 1) |
kstokely | 7:e649bb2b6187 | 37 | { |
kstokely | 7:e649bb2b6187 | 38 | *SH_ARR[ SHnum - 1] = 1; |
kstokely | 7:e649bb2b6187 | 39 | *SH_ARR[ SHnum ] = 0; |
kstokely | 7:e649bb2b6187 | 40 | } |
kstokely | 7:e649bb2b6187 | 41 | } |
kstokely | 7:e649bb2b6187 | 42 | } |
kstokely | 7:e649bb2b6187 | 43 | |
kstokely | 7:e649bb2b6187 | 44 | |
kstokely | 7:e649bb2b6187 | 45 | void Shutter::writeShutters(bool SH1, bool SH2, bool SH3, bool SH4) |
kstokely | 7:e649bb2b6187 | 46 | { |
kstokely | 7:e649bb2b6187 | 47 | //Shutter 1 |
kstokely | 7:e649bb2b6187 | 48 | if( SH1) |
kstokely | 7:e649bb2b6187 | 49 | { |
kstokely | 7:e649bb2b6187 | 50 | *SH_ARR[0] = 1; |
kstokely | 7:e649bb2b6187 | 51 | *SH_ARR[1] = 0; |
kstokely | 7:e649bb2b6187 | 52 | } |
kstokely | 7:e649bb2b6187 | 53 | else |
kstokely | 7:e649bb2b6187 | 54 | { |
kstokely | 7:e649bb2b6187 | 55 | *SH_ARR[0] = 0; |
kstokely | 7:e649bb2b6187 | 56 | *SH_ARR[1] = 1; |
kstokely | 7:e649bb2b6187 | 57 | } |
kstokely | 7:e649bb2b6187 | 58 | |
kstokely | 7:e649bb2b6187 | 59 | //Shutter 2 |
kstokely | 7:e649bb2b6187 | 60 | if( SH2) |
kstokely | 7:e649bb2b6187 | 61 | { |
kstokely | 7:e649bb2b6187 | 62 | *SH_ARR[2] = 1; |
kstokely | 7:e649bb2b6187 | 63 | *SH_ARR[3] = 0; |
kstokely | 7:e649bb2b6187 | 64 | } |
kstokely | 7:e649bb2b6187 | 65 | else |
kstokely | 7:e649bb2b6187 | 66 | { |
kstokely | 7:e649bb2b6187 | 67 | *SH_ARR[2] = 0; |
kstokely | 7:e649bb2b6187 | 68 | *SH_ARR[3] = 1; |
kstokely | 7:e649bb2b6187 | 69 | } |
kstokely | 7:e649bb2b6187 | 70 | |
kstokely | 7:e649bb2b6187 | 71 | //Shutter 3 |
kstokely | 7:e649bb2b6187 | 72 | if( SH3) |
kstokely | 7:e649bb2b6187 | 73 | { |
kstokely | 7:e649bb2b6187 | 74 | *SH_ARR[4] = 1; |
kstokely | 7:e649bb2b6187 | 75 | *SH_ARR[5] = 0; |
kstokely | 7:e649bb2b6187 | 76 | } |
kstokely | 7:e649bb2b6187 | 77 | else |
kstokely | 7:e649bb2b6187 | 78 | { |
kstokely | 7:e649bb2b6187 | 79 | *SH_ARR[4] = 0; |
kstokely | 7:e649bb2b6187 | 80 | *SH_ARR[5] = 1; |
kstokely | 7:e649bb2b6187 | 81 | } |
kstokely | 7:e649bb2b6187 | 82 | |
kstokely | 7:e649bb2b6187 | 83 | //Shutter 4 |
kstokely | 7:e649bb2b6187 | 84 | if( SH4) |
kstokely | 7:e649bb2b6187 | 85 | { |
kstokely | 7:e649bb2b6187 | 86 | *SH_ARR[6] = 1; |
kstokely | 7:e649bb2b6187 | 87 | *SH_ARR[7] = 0; |
kstokely | 7:e649bb2b6187 | 88 | } |
kstokely | 7:e649bb2b6187 | 89 | else |
kstokely | 7:e649bb2b6187 | 90 | { |
kstokely | 7:e649bb2b6187 | 91 | *SH_ARR[6] = 0; |
kstokely | 7:e649bb2b6187 | 92 | *SH_ARR[7] = 1; |
kstokely | 7:e649bb2b6187 | 93 | } |
kstokely | 7:e649bb2b6187 | 94 | } |