Verständnis code zum Einlesen Drehencoder

Hallo Zusammen

vielen Dank für die tolle Hilfe.
Ich bin auch schon weitergekomen.
So kann ich den Wert den ich mittels Incrementalgeber verstellen will schon auf dem LCD ausgeben und dieser lässt sich auch höher und tiefer verstellen, ausserdem geht er auch ins negative.
Doch zwei Sachen fehlen Mir noch und zwar sollte :

  • Dieser Wert mit zwei Stellen hinter dem Komma dargestellt werden können
  • Die Schrittweite mit der der Wert erhöht wird ,mittels eines Tasters um den Faktor 100 erhöht werden können

alle meine Versuche das mittels anderen Variablen hinzubekommen sind gescheitert. Eventuell kann mir hier jemand helfen.

Vielen Dank im Vorraus Rudi

achso hier noch er Sketch wie ieser von mir umgestrickt woren ist.

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

float Impuleingang = 2;
const int  Drehrichtung = 3;
int Drehrichtunstatus = 0;


volatile uint16_t counter;
char pbuf[20];

void setup() {
  pinMode(Impuleingang, INPUT);
  digitalWrite(Impuleingang, HIGH);
  
  pinMode(Drehrichtung, INPUT);
  digitalWrite(Drehrichtung, HIGH);
 
 
 
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Incrementalgeber");
  lcd.setCursor(0, 1);
  lcd.print("Wert:");
  attachInterrupt(0, count, FALLING );
}

void loop() 
{
  Drehrichtunstatus = digitalRead(Drehrichtung);
  
  int lastcount=0xffff;  
  uint8_t sreg;
  
  if (counter != lastcount) 
  {
    sreg = SREG;              
                               
    cli();                    
    lastcount = counter;
    SREG = sreg;              
                               
    sprintf(pbuf, "%5d", lastcount); 
    lcd.setCursor(11, 1);
    lcd.print(pbuf); 
  }
  delay(100);
}

void count() {
  if (Drehrichtunstatus == 1)
  counter++;
  
   if (Drehrichtunstatus == 0)
  counter--;
}