Kleiner Tipp wie man solche Probleme auch ohne Oszi erkennen kann:

Code:
bool bNewData = false;
uint8_t ErrCnt = 0;

void ISR()
{
	if (!bNewData)
		bNewData = true;
	else
		ErrCnt++;
}

void main()
{
	while(1)
	{
		if (bNewData)
		{
			// Hier Daten abholen und auf SD-Karte speichern
			
			...
			
			// Dann Flag zurücksetzen
			bNewData = false;
		}
	}
}
Bei diesem Code wird ErrCnt um 1 inkrementiert falls ein Interrupt ausgelöst wird, bevor die Datenverarbeitung abgeschlossen ist.

Auf dem Display könntest du dann z.B. ausgeben lassen wie viele Interrupts pro Sekunde du "verpasst" weil das Speichern zu lange dauert. Ist der Wert größer als 0, könnte ein Ringpuffer (FIFO) eventuell Abhilfe schaffen.