SENSOR MAX30100

Hola tengo un problema con mi código, \

uso la librería para este sensor y el código que corresponde, estuve modificando el código solo agregando un while para que me midiera el pulso solo 17 veces al momento, ahora lo que deseo es activar el sensor con un case, pero para mi fortuna cuando lo hago en el case no me da los valores y si lo saco del case jala normal.

si alguien pudiera decirme donde esta mi error o que es lo que tengo que hacer se los adradeceria

//librerias pulso cardiaco--------------------------------
#include <Wire.h>
#include <EEPROM.h>
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS     1000

//Variables pulso cardiaco-------------------------------------
PulseOximeter pox;

uint32_t tsLastReport = 0;

int n2= 0;
int n3= 0;

int direccion = 0;
int direccion2 = 1;

float pulso = 0;
float pulso2 = 0;

int i = 0;

char aux;
char b;

// funcion detectar el beat-------------------
void onBeatDetected()
{
  if(n2 < 17)
  {
   Serial.print(" ");
   n2=n2+1;
  }
    
}
//-------------------------------------------------------------
void setup()
{
  //inicia sensor de pulso cardiaco
    Serial.begin(9600);

    Serial.print("Inicio sensor pulso ");

    if (!pox.begin()) {
        Serial.println("INCORRECTO");
        for(;;);
    } else {
        Serial.println("CORRECTO");
    }
}

//funcion de los cases
void loop(){

//switch(Serial.read())
      //{
       // case 'a':
        
        funcion_pulso_sat();
      
       // break;
  //}     
}

//funcion de pulso cardiaco
void funcion_pulso_sat()
{
    while(n3 < 17){
      
        pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
        
        pox.setOnBeatDetectedCallback(onBeatDetected);
 
        pox.update();
 
    if (millis() - tsLastReport > REPORTING_PERIOD_MS){
           
        Serial.print("  SpO2:");
        Serial.print(pox.getSpO2());
        EEPROM.put(direccion2,pox.getSpO2());

        Serial.println(" %");

        pulso = pulso + pox.getHeartRate();
        pulso2 = pulso/15;
        
        Serial.print(" pulso2:");
        Serial.print(pulso2);
        EEPROM.put(direccion,pulso2);

        Serial.print(" ");
        Serial.print(tsLastReport);

        Serial.print(" ");
        Serial.print(REPORTING_PERIOD_MS);

           Serial.print(" m");
        Serial.print(millis());
        
        n3=n3+1;

        tsLastReport = millis();  
        
    }
    
  }
   
}