* Author : Uwe Kolz uint8_t decode(int8_t dgA, uint8_t dgB) { static uint8_t dgHist = 0; // Wert historie uint8_t dgVal = 0; // Aktueller Wert Bit 1 und 2 dgVal = 0; if (dgA != 0) dgVal |= 0b01; if (dgB != 0) dgVal |= 0b10; if ( ( dgHist & 0b11 ) == dgVal) return 0; // no change, return dgHist = dgHist<<2; dgHist = ( dgHist | dgVal ) & 0b00111111; /* switch (dgHist) // 1:1 Abtastung { case 0b100001: return 1; break; case 0b010010: return -1; break; default: return 0; break; } */ switch (dgHist) // 1:2 Abtastung { case 0b111000: return 1; break; case 0b000111: return 1; break; case 0b110100: return -1; break; case 0b001011: return -1; break; default: return 0; break; } /* switch (dgHist) // 1:4 Abtastung { case 0b111000: return 1; break; case 0b100001: return 1; break; case 0b000111: return 1; break; case 0b011110: return 1; break; case 0b110100: return -1; break; case 0b010010: return -1; break; case 0b001011: return -1; break; case 0b101101: return -1; break; default: return 0; break; } */ return 0; }