0xPIT Encoder Libary and multiple Encoders

Hello,

i try to use the Libary from 0xPIT. It works fine with one Encoder,
but i need a solution for two Encoders with PushButtons.

in the issues of the Libary i found this:

now i change the code according to the manual in the issue and
also i change my sketch to this:
(but only encoder one works, encoder two is dead)

#include <TimerThree.h>
#include <Keyboard.h>
#include <ClickEncoder.h>
#include <TimerOne.h>


ClickEncoder *encoder01;
ClickEncoder *encoder02;

int16_t last01, value01;
int16_t last02, value02;

void timerIsr01()
{
  encoder01->service();
}

void timerIsr02()
{
  encoder02->service();
}

void setup()
{
  Serial.begin(9600);
  encoder01 = new ClickEncoder(A1, A0, A2, 4);  // Encoder Pin an A0 und A1, Button Pin an A2; Restlichen Pins direkt an GND ### 4 = stepsPerNotch
  encoder02 = new ClickEncoder(A4, A3, A5, 4);  // Encoder Pin an A0 und A1, Button Pin an A2; Restlichen Pins direkt an GND ### 4 = stepsPerNotch


  Timer1.initialize(1000);
  Timer1.attachInterrupt(timerIsr01);
 
  Timer3.initialize(1000); 
  Timer3.attachInterrupt(timerIsr02);
 
  last01 = -1;
  last02 = -1;
}

void loop()
{ 
  value01 += encoder01->getValue();
 
  if (value01 != last01)
  {
    if (value01 < last01)
    {
      Serial.print(value01);
      Serial.print("\n01: Right \n");
 
    }
    if (value01 > last01)
    {
      Serial.print(value01);
      Serial.print("\n01: Left \n");

    }
    last01 = value01;
  }
 
  ClickEncoder::Button b = encoder01->getButton();
  if (b != ClickEncoder::Open)
  {
    switch (b)
    {
      case ClickEncoder::Pressed:
        Serial.print("01: Pressed \n");
        break;
      case ClickEncoder::Held:
        Serial.print("01: Held \n");
        break;
      case ClickEncoder::Released:
        Serial.print("01: Released \n");
        break;
      case ClickEncoder::Clicked:
        Serial.print("01: Clicked \n");
        break;
      case ClickEncoder::DoubleClicked:
        Serial.print("01: DoubleClicked \n");
        break;
    }

  // E N C O D E R 2

  value02 += encoder02->getValue();
 
  if (value02 != last02)
  {
    if (value02 < last02)
    {
      Serial.print(value02);
      Serial.print("\n01: Right \n");
 
    }
    if (value02 > last02)
    {
      Serial.print(value02);
      Serial.print("\n02: Left \n");

    }
    last02 = value02;
  }
 
  ClickEncoder::Button c = encoder02->getButton();
  if (c != ClickEncoder::Open)
  {
    switch (c)
    {
      case ClickEncoder::Pressed:
        Serial.print("02: Pressed \n");
        break;
      case ClickEncoder::Held:
        Serial.print("02: Held \n");
        break;
      case ClickEncoder::Released:
        Serial.print("02: Released \n");
        break;
      case ClickEncoder::Clicked:
        Serial.print("02: Clicked \n");
        break;
      case ClickEncoder::DoubleClicked:
        Serial.print("02: DoubleClicked \n");
        break;
    }
  }
     
  }   
}

another code: also dont work

#include <Keyboard.h>

#include <ClickEncoder.h>
#include <TimerOne.h>

ClickEncoder *encoder01;
ClickEncoder *encoder02;

int16_t last01, value01;
int16_t last02, value02;

void timerIsr01()
{
  encoder01->service();
}

void timerIsr02()
{
  encoder02->service();
}

void setup()
{
  Serial.begin(9600);
  encoder01 = new ClickEncoder(A1, A0, A2, 4);  // Encoder Pin an A0 und A1, Button Pin an A2; Restlichen Pins direkt an GND ### 4 = stepsPerNotch
  encoder02 = new ClickEncoder(A4, A3, A5, 4);  // Encoder Pin an A0 und A1, Button Pin an A2; Restlichen Pins direkt an GND ### 4 = stepsPerNotch


  Timer1.initialize(1000);
  Timer1.attachInterrupt(timerIsr01);
  Timer1.attachInterrupt(timerIsr02);
 
  last01 = -1;
  last02 = -1;
}

void loop()
{ 
  value01 += encoder01->getValue();
 
  if (value01 != last01)
  {
    if (value01 < last01)
    {
      Serial.print(value01);
      Serial.print("\n01: Right \n");
 
    }
    if (value01 > last01)
    {
      Serial.print(value01);
      Serial.print("\n01: Left \n");

    }
    last01 = value01;
  }
 
  ClickEncoder::Button b = encoder01->getButton();
  if (b != ClickEncoder::Open)
  {
    switch (b)
    {
      case ClickEncoder::Pressed:
        Serial.print("01: Pressed \n");
        break;
      case ClickEncoder::Held:
        Serial.print("01: Held \n");
        break;
      case ClickEncoder::Released:
        Serial.print("01: Released \n");
        break;
      case ClickEncoder::Clicked:
        Serial.print("01: Clicked \n");
        break;
      case ClickEncoder::DoubleClicked:
        Serial.print("01: DoubleClicked \n");
        break;
    }

  // E N C O D E R 2

  value02 += encoder02->getValue();
 
  if (value02 != last02)
  {
    if (value02 < last02)
    {
      Serial.print(value02);
      Serial.print("\n01: Right \n");
 
    }
    if (value02 > last02)
    {
      Serial.print(value02);
      Serial.print("\n02: Left \n");

    }
    last02 = value02;
  }
 
  ClickEncoder::Button c = encoder02->getButton();
  if (c != ClickEncoder::Open)
  {
    switch (c)
    {
      case ClickEncoder::Pressed:
        Serial.print("02: Pressed \n");
        break;
      case ClickEncoder::Held:
        Serial.print("02: Held \n");
        break;
      case ClickEncoder::Released:
        Serial.print("02: Released \n");
        break;
      case ClickEncoder::Clicked:
        Serial.print("02: Clicked \n");
        break;
      case ClickEncoder::DoubleClicked:
        Serial.print("02: DoubleClicked \n");
        break;
    }
  }
     
  }   
}