• Sujet 1 (binôme de gauche)


      Code de tirage pseudo-aléatoire :
    • // On reste bloqué ici tant que le bouton est relaché
      while(HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_SET);

      // Faire tant que le bouton est appuyé
      do{
      caractere_a_deviner ++;
      }while(HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_RESET);

      caractere_a_deviner %= 10; // On limite le nombre généré à la plage {0 ; 9}
      caractere_a_deviner += '0'; // On convertit le chiffre en caractère

      // Affichage du nombre a devenir (commenter ces lignes pour plus de mystere !)
      ENSI_UART_PutString((uint8_t*)"Valeur a deviner : ");
      ENSI_UART_PutChar(caractere_a_deviner);
      ENSI_UART_PutString((uint8_t*)"\r\n");
    • Sujet 2 (binôme de droite)


      Code de lecture du bouton poussoir avec anti-rebond :
    • while(1) {
      // Bloqué ici tant que le bouton est relaché
      while(HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_SET);

      // Active ou désactive le décompte, selon son état actuel
      decompte_actif = 1 - decompte_actif;

      // Bloqué ici tant que le bouton est appuyé
      while(HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_RESET);
      }