Arduino otp token Problem

Hallo zusammen,

habe mir aus folgenden Quellen ein Script zusammengestellt, welches auch soweit ganz gut funktioniert.
Leider habe ich noch ein kleines Problem mit dem Script.

https://bitbucket.org/mindogas/lm15sgfnz07

#include <LM15SGFNZ07.h>
#include <sha1.h>

LM15SGFNZ07 lcd(2,3,4,5,6); //configing lcd conectivity

void printHash(uint8_t* hash) {
  int i;
  for (i=0; i<20; i++) Serial.println(hash[i]);
  Serial.println();
}

uint8_t hmacKey1[]={ 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x21, 0xde, 0xad, 0xbe, 0xef, 0x6f, 0x21, 0xde, 0xad, 0xbe, 0xef };

long birthTime = 1339345870;
long intern = 0;
long oldOtp = 0;
int wait = 0;
void setup() {
  Serial.begin(9600);
  lcd.init_lcd();
  lcd.contrast_lcd(0x11c);
  lcd.clear_lcd(WHITE);
}



void loop() {

  if(intern == 0) intern = birthTime;
  else{
  
   uint8_t byteArray[8];   
   long time = intern / 30;
              
   byteArray[0] = 0x00;
   byteArray[1] = 0x00;
   byteArray[2] = 0x00;
   byteArray[3] = 0x00;
   byteArray[4] = (int)((time >> 24) & 0xFF) ;
   byteArray[5] = (int)((time >> 16) & 0xFF) ;
   byteArray[6] = (int)((time >> 8) & 0XFF);
   byteArray[7] = (int)((time & 0XFF));
  
   uint8_t* hash;
   uint32_t a; 
   Sha1.initHmac(hmacKey1,16);
   Sha1.writebytes(byteArray, 8);
   hash = Sha1.resultHmac();
  
   int  offset = hash[20 - 1] & 0xF; 
   long truncatedHash = 0;
   int j;
   for (j = 0; j < 4; ++j) {
    truncatedHash <<= 8;
    truncatedHash  |= hash[offset + j];
   }
    
   truncatedHash &= 0x7FFFFFFF;
   truncatedHash %= 1000000;
  
  
   if(truncatedHash != oldOtp){
    oldOtp = truncatedHash;
    char buffer[6];
    dtostrf(truncatedHash, 6, 0, buffer);
    lcd.clear_lcd(WHITE);
    lcd.str_lcd("OTP: ",2, 2, 1, BLACK, -1);
    lcd.str_lcd(buffer,6, 2, 1, BLACK, -1);
    lcd.str_lcd("[          ]",2, 100, 1, BLACK, -1);
    wait = 0;
   }else wait++;
   
   if(wait % 2 == 0){
   lcd.str_lcd("*",(wait/2)+3, 100, 1, BLACK, -1);
   
   } 
   
   delay(1000);
   intern++;
  }
  
  
}

Wenn die 10 Sterne hochgezählt wurden, soll es den Bilschirm löschen und einen neuen Code anzeigen und mit dem hochzählen neu beginnen. Dies funktioniert einmal, anschließend wird viel weiter rauf gezählt (Serial Output).
Kann mir bitte jemand helfen? seh da grad nicht mehr durch.
Danke