stale zmieniająca się wartość parametru

Mam funkcję sprawdzającą, która przyjmuje wartość logiczną jako argument, używa wartości logicznej, a następnie ją zmienia. Zawsze przekazuję tę funkcję zmienną globalną, taką jak:

check(4, some_global_boolean, 'a');

i chcę, aby zmiana zmiennej pozostała po wywołaniu „sprawdź”. W tej chwili zmiana nie wykracza poza to wywołanie funkcji. Jak mam to zrobic?

boolean check(int key, boolean prev_key_high, char c){

 if (key == LOW) {
    if ( prev_key_high){
      prev_key_high = false;
      Serial.println(c);
      return true;
}
  }

  else {
    prev_key_high = true;
    return false;
  }
}

questionAnswers(6)

yourAnswerToTheQuestion