123

Dependents:  

Fork of Ventiel by Temp27

Committer:
aglorenz
Date:
Wed Aug 20 11:48:36 2014 +0000
Revision:
1:d0b7c72ef864
Parent:
0:6139224eb903
Child:
2:029f0291d1c4
123

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
aglorenz 1:d0b7c72ef864 4 extern Serial pc; // definiert in main
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 {
aglorenz 1:d0b7c72ef864 16 uint8_t wert1 = 0;
aglorenz 1:d0b7c72ef864 17
aglorenz 1:d0b7c72ef864 18 pc.printf("\nmagnet.set alt = %02x parmeter = %d",v_var,val);
aglorenz 1:d0b7c72ef864 19
aglorenz 1:d0b7c72ef864 20
rs27 0:6139224eb903 21 if (val < 8)
rs27 0:6139224eb903 22 {
rs27 0:6139224eb903 23 // interne Variabel setzen
aglorenz 1:d0b7c72ef864 24 wert1 = (1 << val);
aglorenz 1:d0b7c72ef864 25 v_var |= wert1;
rs27 0:6139224eb903 26 }
rs27 0:6139224eb903 27 else
rs27 0:6139224eb903 28 {
rs27 0:6139224eb903 29 // alle Ventile auf 1 setzen
rs27 0:6139224eb903 30 v_var = 0xff;
rs27 0:6139224eb903 31 }
aglorenz 1:d0b7c72ef864 32
aglorenz 1:d0b7c72ef864 33 pc.printf("\nmagnet.set neu = %02x verknuepfung = %02x\n",v_var,wert1);
rs27 0:6139224eb903 34
rs27 0:6139224eb903 35 // Alle Kanäle ausschalten
rs27 0:6139224eb903 36 com.putc('9');
rs27 0:6139224eb903 37
rs27 0:6139224eb903 38
rs27 0:6139224eb903 39 // aktive Kanäle einschalten
rs27 0:6139224eb903 40 for (uint8_t n = 0; n < 8; n++)
rs27 0:6139224eb903 41 {
aglorenz 1:d0b7c72ef864 42 if (v_var & (1 << n) != 0) com.putc(0x30 + n);
rs27 0:6139224eb903 43 wait_ms(10);
aglorenz 1:d0b7c72ef864 44 }
aglorenz 1:d0b7c72ef864 45
rs27 0:6139224eb903 46 }
rs27 0:6139224eb903 47
rs27 0:6139224eb903 48 void ventiel::reset(uint8_t val)
rs27 0:6139224eb903 49 {
rs27 0:6139224eb903 50
aglorenz 1:d0b7c72ef864 51 uint8_t wert1 = 0;
aglorenz 1:d0b7c72ef864 52
aglorenz 1:d0b7c72ef864 53 pc.printf("\nmagnet.reset alt = %02x parameter = %d",v_var,val);
aglorenz 1:d0b7c72ef864 54
rs27 0:6139224eb903 55 if (val < 8)
rs27 0:6139224eb903 56 {
rs27 0:6139224eb903 57 // interne Variabel setzen
aglorenz 1:d0b7c72ef864 58 wert1 = ~(1 << val);
aglorenz 1:d0b7c72ef864 59 v_var &= wert1;
rs27 0:6139224eb903 60 }
rs27 0:6139224eb903 61 else
rs27 0:6139224eb903 62 {
rs27 0:6139224eb903 63 // alle Ventile auf 1 setzen
rs27 0:6139224eb903 64 v_var = 0x00;
rs27 0:6139224eb903 65 }
aglorenz 1:d0b7c72ef864 66
aglorenz 1:d0b7c72ef864 67 pc.printf("\nmagnet.reset neu = %02x, verknuepfung = %02x\n",v_var,wert1);
rs27 0:6139224eb903 68
rs27 0:6139224eb903 69 // Alle Kanäle ausschalten
rs27 0:6139224eb903 70 com.putc('9');
rs27 0:6139224eb903 71
rs27 0:6139224eb903 72 // aktive Kanäle einschalten
rs27 0:6139224eb903 73 for (uint8_t n = 0; n < 8; n++)
rs27 0:6139224eb903 74 {
aglorenz 1:d0b7c72ef864 75 if (v_var & (1 << n) != 0) com.putc(0x30 + n);
rs27 0:6139224eb903 76 wait_ms(10);
aglorenz 1:d0b7c72ef864 77 }
aglorenz 1:d0b7c72ef864 78
aglorenz 1:d0b7c72ef864 79
aglorenz 1:d0b7c72ef864 80
rs27 0:6139224eb903 81 }
rs27 0:6139224eb903 82
rs27 0:6139224eb903 83 bool ventiel::get(uint8_t val)
rs27 0:6139224eb903 84 {
aglorenz 1:d0b7c72ef864 85 if ((v_var & (1 << val)) == 0) return false;
rs27 0:6139224eb903 86 else return true;
rs27 0:6139224eb903 87 }