/*attiny bistable 2 sorties
  Une mise à la masse furtive de l'entrée inverse les sorties et les mémorise
  A la mise sous tension la sortie1 est à 1  et la sortie2 est à 0
  lien: https://wokwi.com/projects/414362369697286145
  Une mise à la masse furtive de l'entrée inverse les sorties et les mémorise
  A la mise sous tension la sortie1 est à 1  et la sortie2 est à 0
  test: ok
*/

// configuration
const byte PinBP  = 4;
const byte Sortie1 = 0;
const byte Sortie2 = 1;
bool etatBP;// BP relaché: HIGH  BP appuyé: LOW
bool precedentEtatBP = HIGH;
bool etatSortie = LOW;

void setup() {
  pinMode(PinBP, INPUT_PULLUP); // on règle PinBP en entrée
  pinMode(Sortie1, OUTPUT); // on règle Sortie1 en sortie
  pinMode(Sortie2, OUTPUT); // on règle Sortie2 en sortie
} // fin setup

void loop() {
  etatBP = digitalRead(PinBP); // lecture de l'état du BP
  delay(50); // pour anti rebond
  if ((etatBP == LOW) && (precedentEtatBP == HIGH)) {
    etatSortie = !etatSortie; //inversion de etatSortie
  } // fin if
  precedentEtatBP = etatBP; // sauvegarde de l'état précédent du BP
  if (etatSortie == HIGH) {
    digitalWrite(Sortie1, HIGH);
    digitalWrite(Sortie2, LOW);
  } // fin if
  else {
    digitalWrite(Sortie1, LOW);
    digitalWrite(Sortie2, HIGH);
  } // fin else
} // fin loop
ATTINY8520PU