Factory Monitor
Dependencies: mbed
factory sense HQ
main.cpp@6:e8819487b352, 2015-08-25 (annotated)
- Committer:
- Nick123
- Date:
- Tue Aug 25 13:39:32 2015 +0000
- Revision:
- 6:e8819487b352
- Parent:
- 5:faa8843f3990
- Child:
- 7:854af9ba3146
silly booboo... double equals instead of single, is this now right?
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
melmon | 0:a521da10b15a | 1 | #include "mbed.h" |
melmon | 0:a521da10b15a | 2 | |
melmon | 4:7a50e0818a47 | 3 | #define no_pins 2 |
Nick123 | 5:faa8843f3990 | 4 | #define Inputs 0 |
Nick123 | 5:faa8843f3990 | 5 | #define Outputs 1 |
melmon | 4:7a50e0818a47 | 6 | #define Rejects Values[2] |
melmon | 4:7a50e0818a47 | 7 | |
melmon | 4:7a50e0818a47 | 8 | |
melmon | 0:a521da10b15a | 9 | DigitalIn sensorPin1(p5); |
Nick123 | 1:b52588ac9aae | 10 | DigitalIn sensorPin2(p6); |
Nick123 | 1:b52588ac9aae | 11 | //variables |
melmon | 0:a521da10b15a | 12 | |
melmon | 0:a521da10b15a | 13 | // initialize serial communication: |
melmon | 0:a521da10b15a | 14 | Serial pc(USBTX, USBRX); |
melmon | 0:a521da10b15a | 15 | |
Nick123 | 2:cff64a27ae9d | 16 | class PinCheck { |
melmon | 3:cff56a809a37 | 17 | |
Nick123 | 2:cff64a27ae9d | 18 | public: |
Nick123 | 2:cff64a27ae9d | 19 | PinCheck(PinName pin) : _pin(pin) { |
melmon | 3:cff56a809a37 | 20 | |
Nick123 | 2:cff64a27ae9d | 21 | } |
Nick123 | 2:cff64a27ae9d | 22 | |
Nick123 | 2:cff64a27ae9d | 23 | |
melmon | 4:7a50e0818a47 | 24 | int Go_and_check(int a) { |
melmon | 3:cff56a809a37 | 25 | sensorState = _pin; // read the sensor input pin: |
melmon | 4:7a50e0818a47 | 26 | int zero = 0; |
melmon | 4:7a50e0818a47 | 27 | if (sensorState != lastSensorState[a]) // compare the sensorState to its previous state |
melmon | 0:a521da10b15a | 28 | { |
melmon | 0:a521da10b15a | 29 | // if the state has changed, check to see if it is a change from high to low or low to high |
melmon | 3:cff56a809a37 | 30 | if (sensorState == 1){ // if the current state is HIGH then increment the counter |
Nick123 | 6:e8819487b352 | 31 | if (a == Inputs){ lastSensorState[a] = sensorState;} |
Nick123 | 6:e8819487b352 | 32 | if (a == Outputs){ lastSensorState[a] = sensorState;} |
melmon | 3:cff56a809a37 | 33 | return sensorState; |
melmon | 0:a521da10b15a | 34 | } |
melmon | 0:a521da10b15a | 35 | |
Nick123 | 5:faa8843f3990 | 36 | else { // if the current state is LOW then ignore |
Nick123 | 6:e8819487b352 | 37 | if (a == Inputs){ lastSensorState[a] = sensorState;} |
Nick123 | 6:e8819487b352 | 38 | if (a == Outputs){ lastSensorState[a] = sensorState;} |
melmon | 4:7a50e0818a47 | 39 | return zero; |
melmon | 0:a521da10b15a | 40 | } |
melmon | 0:a521da10b15a | 41 | } |
melmon | 4:7a50e0818a47 | 42 | return zero; |
Nick123 | 1:b52588ac9aae | 43 | } |
melmon | 3:cff56a809a37 | 44 | |
Nick123 | 2:cff64a27ae9d | 45 | private: |
Nick123 | 2:cff64a27ae9d | 46 | DigitalIn _pin; |
melmon | 4:7a50e0818a47 | 47 | int sensorState; |
melmon | 4:7a50e0818a47 | 48 | int lastSensorState[no_pins]; |
melmon | 4:7a50e0818a47 | 49 | |
melmon | 3:cff56a809a37 | 50 | |
Nick123 | 2:cff64a27ae9d | 51 | }; |
Nick123 | 2:cff64a27ae9d | 52 | |
melmon | 4:7a50e0818a47 | 53 | PinCheck inputs(p6); |
melmon | 4:7a50e0818a47 | 54 | PinCheck outputs(p5); |
Nick123 | 1:b52588ac9aae | 55 | |
Nick123 | 1:b52588ac9aae | 56 | int main() { |
melmon | 4:7a50e0818a47 | 57 | |
Nick123 | 5:faa8843f3990 | 58 | int Values[3]; |
Nick123 | 5:faa8843f3990 | 59 | |
Nick123 | 1:b52588ac9aae | 60 | |
Nick123 | 1:b52588ac9aae | 61 | while(1) |
Nick123 | 1:b52588ac9aae | 62 | { |
melmon | 4:7a50e0818a47 | 63 | |
melmon | 4:7a50e0818a47 | 64 | for(int i = 0; i < no_pins; i ++){ |
melmon | 4:7a50e0818a47 | 65 | if (i == Inputs){ Values[i] += inputs.Go_and_check(i); } |
melmon | 4:7a50e0818a47 | 66 | if (i == Outputs){ Values[i] += outputs.Go_and_check(i); } |
melmon | 4:7a50e0818a47 | 67 | |
melmon | 4:7a50e0818a47 | 68 | }; |
Nick123 | 1:b52588ac9aae | 69 | |
melmon | 0:a521da10b15a | 70 | } |
melmon | 0:a521da10b15a | 71 | } |