Arduino Uno as a HID Keyboard PROBLEM

Hi.

So I did something like this. There is something wrong. The program is stuck somewhere.

/* 
 * 
 */ 
 //9.Aprill, 2000
 
  uint8_t buf[8] = { 
    0 }; 	/* Keyboard report buffer */
     const int button = A0; // Button input pin
     int ButtonState = 0; // Current button value
     int lastbuttonState = 0;  //previous state
     int counter = 0;        // counter
     
  void setup() 
    {
    Serial.begin(9600);
    pinMode(button, INPUT);
    delay(200);
    }
 
  void loop() 
   {
     ButtonState = digitalRead(button);   // read the button
    
     if (counter == 4) ButtonState = 0; 
     if (ButtonState != lastbuttonState)
        {
        if (ButtonState == HIGH)
           {
             counter++;
              
           }
         }
         
     if (counter == 2)              // continue if counter value 2
     {
 
      buf[2] = 0x15;	  // Letter R
      Serial.write(buf, 8);	// Send keypress
      releaseKey();
      }
      
     lastbuttonState = ButtonState; 
    }
 
  void releaseKey() 
    {
      buf[0] = 0;
      buf[2] = 0;
      Serial.write(buf, 8);	// Release key  
     }