123

Dependents:  

Fork of Ventiel by Temp27

Committer:
rs27
Date:
Mon Aug 18 13:44:32 2014 +0000
Revision:
0:6139224eb903
Child:
1:d0b7c72ef864
180814

Who changed what in which revision?

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