Stopwatch + SD problem

Hi. My stopwatch doesn’t work correctly. Sometimes it doesn’t save times to SD card, I don’t know why :frowning:

Here’s the code:

#include <TimerOne.h> /biblioteka obs?ugi timera
#include <SD.h> //biblioteka do obs?ugi kart SD
File plik; //tworzymy obiekt, który b?dzie przechowywa? informacje konieczne do prowadzenia operacji na plikach



void setup(){

Timer1.initialize();//inicjalizujemy Timer1
Timer1.setPeriod(1000);//przerwanie co 1000 us = 1 ms
Timer1.attachInterrupt(ms_tick);
attachInterrupt(INT0,klik,FALLING);
//przycisk
pinMode(2,INPUT);
digitalWrite(2,HIGH);
pinMode(6,OUTPUT); //dioda sygnalizuj?ca poprawno?? inicjalizacji karty
digitalWrite(6,LOW);



pinMode(10,OUTPUT);//ustawiam pin 10, pod??czony do pinu CS karty jako wyj?cie 

if(SD.begin(10)){  //sprawdzam czy karta jest w slocie
  
    digitalWrite(6,HIGH);
    
  }else{
    digitalWrite(6,LOW);
    
    while(1); 
    
  }




}
volatile unsigned int ms=0;
volatile unsigned int s=0;
volatile boolean flaga=0;
volatile boolean koniec=0;

void loop(){

  
  if(flaga==1) {
 
  plik=SD.open("czasy.txt",FILE_WRITE); //otwieram plik do zapisu
  
   if(plik) { //sprawdzam czy poprawnie otwarty
     
  plik.print(s,DEC);
  plik.print(".");
  


if(ms<100)plik.print("0");
if(ms<10)plik.print("0");

plik.print(ms,DEC);
plik.println(" s");
plik.close(); //zamykam plik
flaga=0;




   }

  }


if(digitalRead(2)==1){
delay(10);
koniec=1;
}

}

Do you have a button on D2? Is the ISR used for debouncing?

Yes I connect button to INT0(PD2).