123
Fork of Ventiel by
ventiel.cpp@0:6139224eb903, 2014-08-18 (annotated)
- Committer:
- rs27
- Date:
- Mon Aug 18 13:44:32 2014 +0000
- Revision:
- 0:6139224eb903
- Child:
- 1:d0b7c72ef864
180814
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rs27 | 0:6139224eb903 | 1 | |
rs27 | 0:6139224eb903 | 2 | #include "ventiel.h" |
rs27 | 0:6139224eb903 | 3 | |
rs27 | 0:6139224eb903 | 4 | |
rs27 | 0:6139224eb903 | 5 | extern Serial com; // definiert in main |
rs27 | 0:6139224eb903 | 6 | |
rs27 | 0:6139224eb903 | 7 | //-------------------------------------------------------- |
rs27 | 0:6139224eb903 | 8 | // Construktor initialisiert das Ventiel |
rs27 | 0:6139224eb903 | 9 | ventiel::ventiel() |
rs27 | 0:6139224eb903 | 10 | { |
rs27 | 0:6139224eb903 | 11 | v_var = 0; |
rs27 | 0:6139224eb903 | 12 | } |
rs27 | 0:6139224eb903 | 13 | |
rs27 | 0:6139224eb903 | 14 | void ventiel::set(uint8_t val) |
rs27 | 0:6139224eb903 | 15 | { |
rs27 | 0:6139224eb903 | 16 | if (val < 8) |
rs27 | 0:6139224eb903 | 17 | { |
rs27 | 0:6139224eb903 | 18 | // interne Variabel setzen |
rs27 | 0:6139224eb903 | 19 | v_var |= (1 < val); |
rs27 | 0:6139224eb903 | 20 | } |
rs27 | 0:6139224eb903 | 21 | else |
rs27 | 0:6139224eb903 | 22 | { |
rs27 | 0:6139224eb903 | 23 | // alle Ventile auf 1 setzen |
rs27 | 0:6139224eb903 | 24 | v_var = 0xff; |
rs27 | 0:6139224eb903 | 25 | } |
rs27 | 0:6139224eb903 | 26 | |
rs27 | 0:6139224eb903 | 27 | // Alle Kanäle ausschalten |
rs27 | 0:6139224eb903 | 28 | com.putc('9'); |
rs27 | 0:6139224eb903 | 29 | |
rs27 | 0:6139224eb903 | 30 | |
rs27 | 0:6139224eb903 | 31 | // aktive Kanäle einschalten |
rs27 | 0:6139224eb903 | 32 | for (uint8_t n = 0; n < 8; n++) |
rs27 | 0:6139224eb903 | 33 | { |
rs27 | 0:6139224eb903 | 34 | if (v_var & (1 < n) != 0) com.putc(0x30 + n); |
rs27 | 0:6139224eb903 | 35 | wait_ms(10); |
rs27 | 0:6139224eb903 | 36 | } |
rs27 | 0:6139224eb903 | 37 | } |
rs27 | 0:6139224eb903 | 38 | |
rs27 | 0:6139224eb903 | 39 | void ventiel::reset(uint8_t val) |
rs27 | 0:6139224eb903 | 40 | { |
rs27 | 0:6139224eb903 | 41 | |
rs27 | 0:6139224eb903 | 42 | if (val < 8) |
rs27 | 0:6139224eb903 | 43 | { |
rs27 | 0:6139224eb903 | 44 | // interne Variabel setzen |
rs27 | 0:6139224eb903 | 45 | v_var &= ~(1 < val); |
rs27 | 0:6139224eb903 | 46 | } |
rs27 | 0:6139224eb903 | 47 | else |
rs27 | 0:6139224eb903 | 48 | { |
rs27 | 0:6139224eb903 | 49 | // alle Ventile auf 1 setzen |
rs27 | 0:6139224eb903 | 50 | v_var = 0x00; |
rs27 | 0:6139224eb903 | 51 | } |
rs27 | 0:6139224eb903 | 52 | |
rs27 | 0:6139224eb903 | 53 | // Alle Kanäle ausschalten |
rs27 | 0:6139224eb903 | 54 | com.putc('9'); |
rs27 | 0:6139224eb903 | 55 | |
rs27 | 0:6139224eb903 | 56 | // aktive Kanäle einschalten |
rs27 | 0:6139224eb903 | 57 | for (uint8_t n = 0; n < 8; n++) |
rs27 | 0:6139224eb903 | 58 | { |
rs27 | 0:6139224eb903 | 59 | if (v_var & (1 < n) != 0) com.putc(0x30 + n); |
rs27 | 0:6139224eb903 | 60 | wait_ms(10); |
rs27 | 0:6139224eb903 | 61 | } |
rs27 | 0:6139224eb903 | 62 | } |
rs27 | 0:6139224eb903 | 63 | |
rs27 | 0:6139224eb903 | 64 | bool ventiel::get(uint8_t val) |
rs27 | 0:6139224eb903 | 65 | { |
rs27 | 0:6139224eb903 | 66 | if ((v_var & (1 < val)) == 0) return false; |
rs27 | 0:6139224eb903 | 67 | else return true; |
rs27 | 0:6139224eb903 | 68 | } |