2

Dependencies:   mbed DevInterfaces MCP4728 MCP4728setaddr I2Cinterfaces

Committer:
kstokely
Date:
Fri Mar 22 12:48:52 2019 +0000
Revision:
9:2d70aa45f16e
Parent:
7:e649bb2b6187
Export to mbed studio;

Who changed what in which revision?

UserRevisionLine numberNew 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 }