diff --git a/Encoder.c b/Encoder.c
index c87dbe4..5dd45ec 100644
--- a/Encoder.c
+++ b/Encoder.c
@@ -1,107 +1,72 @@
-// Включаем библиотеку для работы с портами ввода-вывода микроконтроллера AVR.
-#include <avr/io.h>
-// Определяем частоту процессора микроконтроллера в 1 МГц.
-#define F_CPU 1000000UL
-// Определяем бит в регистре PIND для сигнала с клока энкодера.
-#define PIND_CLK 0b00010000
-// Определяем бит в регистре PIND для сигнала с DT энкодера.
-#define PIND_DT 0b01000000
-
-volatile uint8_t encoder_state, prev_encoder_state = 3, state = 1;
-int sw34, pin_clk_2, pin_dt_2;
-
-
-void read_encoder_state()
-{
-    // Устанавливаем начальные значения переменных равное 0
-    pin_clk_2 = 0;
-    pin_dt_2 = 0;
-
-    // Устанавливаем значение PIN_CLK_2 в зависимости от установки бита PIND_CLK в PIND
-    pin_clk_2 = (PIND & PIND_CLK) ? 1 : 0;
-    // Устанавливаем значение PIN_DT_2 в зависимости от установки бита PIND_DT в PIND
+// Включаем библиотеку для работы с портами ввода-вывода микроконтроллера AVR. 
+#include <avr/io.h> 
+// Определяем частоту процессора микроконтроллера в 1 МГц. 
+#define F_CPU 1000000UL 
+// Определяем бит в регистре PIND для сигнала с клока энкодера. 
+#define PIND_CLK 0b00010000 
+// Определяем бит в регистре PIND для сигнала с DT энкодера. 
+#define PIND_DT 0b01000000 
+ 
+volatile uint8_t prev_encoder_state, state; 
+int sw34, pin_clk_2, pin_dt_2; 
+ 
+ 
+void read_encoder_state() 
+{ 
+    // Устанавливаем начальные значения переменных равное 0 
+    pin_clk_2 = 0; 
+    pin_dt_2 = 0; 
+ 
+    // Устанавливаем значение PIN_CLK_2 в зависимости от установки бита PIND_CLK в PIND 
+    pin_clk_2 = (PIND & PIND_CLK) ? 1 : 0; 
+    // Устанавливаем значение PIN_DT_2 в зависимости от установки бита PIND_DT в PIND 
     pin_dt_2 = (PIND & PIND_DT) ? 1 : 0;
-    // Получаем состояние энкодера
-    encoder_state = (pin_clk_2 << 1) | pin_dt_2;
 
-    if (encoder_state != prev_encoder_state) 
-    {
-        switch (encoder_state) 
-        {
-            case 0: // Поворот против часовой стрелки (CCW)
-                if (prev_encoder_state == 3) 
-                {
-                  state++;
-                }
-                break;
-
-            case 1: // Поворот по часовой стрелке (CW)
-                if (prev_encoder_state == 1)
-                {
-                  state++;
-                }
-                else if (prev_encoder_state == 2) 
-                {
-                  state--;
-                }
-                break;
-
-            case 2: // Поворот против часовой стрелки (CCW)
-                if (prev_encoder_state == 1) 
-                {
-                  state++;
-                }
-                else if (prev_encoder_state == 3) 
-                {
-                  state--;
-                }
-                break;
-
-            case 3: // Поворот по часовой стрелке (CW)
-                if (prev_encoder_state == 2) 
-                {
-                  state++;
-                }
-                else if (prev_encoder_state == 0) 
-                {
-                  state--;
-                }
-                break;
-        }
-        prev_encoder_state = encoder_state;
-    }
-
-}
-
-void encoder_setup()
-{
-    // Инициализация последовательного порта
-    Serial.begin(9600);
-
-    // Настройка портов ввода-вывода
-    DDRD = 0x00;
-    PORTD = (PIND_CLK + PIND_DT);
-}
-
-uint8_t encoder_value()
-{
-    // Читаем состояние энкодера
-    read_encoder_state();
-
-    // Если состояние энкодера изменилось, выводим его в последовательный порт
-    if (state != sw34)
-    {
-        sw34 = state;
-        return state;
-    }
-}
-
-void setup()
-{
-    encoder_setup();
-}
-
-void loop()
-{
-    Serial.println(encoder_value());
+    if ( pin_clk_2 != prev_encoder_state)
+    { 
+      prev_encoder_state = pin_clk_2;
+      if ( !pin_clk_2 )
+      {
+        switch(PIND & pin_dt_2 )
+        {  
+          case  0: state--; break;
+          case  1: state++; break;
+        }  
+      }
+    } 
+} 
+ 
+void encoder_setup() 
+{ 
+    // Инициализация последовательного порта 
+    Serial.begin(9600); 
+ 
+    // Настройка портов ввода-вывода 
+    DDRD = 0x00; 
+    PORTD = (PIND_CLK + PIND_DT); 
+} 
+ 
+uint8_t encoder_value() 
+{ 
+    // Читаем состояние энкодера 
+    read_encoder_state(); 
+ 
+    // Если состояние энкодера изменилось, выводим его в последовательный порт 
+    if (state != sw34) 
+    { 
+        sw34 = state; 
+        return state; 
+    } 
+} 
+ 
+void setup() 
+{ 
+    encoder_setup(); 
+} 
+ 
+void loop() 
+{ 
+ 
+    //encoder_value(); 
+    Serial.println(encoder_value()); 
 }
\ No newline at end of file