From bc481107298791bf0efd984ecc53dc92b8719878 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Tue, 26 Jan 2021 18:26:26 +0100 Subject: Insertion du projet dans sa totalité MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Src/main.c | 409 -------------------------------------------------------- 1 file changed, 409 deletions(-) delete mode 100644 Core/Src/main.c (limited to 'Core/Src/main.c') diff --git a/Core/Src/main.c b/Core/Src/main.c deleted file mode 100644 index 1001ae9..0000000 --- a/Core/Src/main.c +++ /dev/null @@ -1,409 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file : main.c - * @brief : Main program body - ****************************************************************************** - * @attention - * - *

© Copyright (c) 2020 STMicroelectronics. - * All rights reserved.

- * - * This software component is licensed by ST under BSD 3-Clause license, - * the "License"; You may not use this file except in compliance with the - * License. You may obtain a copy of the License at: - * opensource.org/licenses/BSD-3-Clause - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "main.h" -#include "usart.h" -#include "gpio.h" - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ -#include "led.h" -#include "button.h" -#include "lcd_1602.h" -#include -#include -#include -#include -#include -/* USER CODE END Includes */ -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN PTD */ - -/* USER CODE END PTD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN PD */ -/* USER CODE END PD */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN PM */ - -/* USER CODE END PM */ - -/* Private variables ---------------------------------------------------------*/ - -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -void SystemClock_Config(void); -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* Private user code ---------------------------------------------------------*/ - -/* USER CODE BEGIN 0 */ -//Declaration des leds et buttons -LED_TypeDef led_rouge; //rouge -LED_TypeDef led_verte; //verte -LED_TypeDef led_jaune; //jaune -LED_TypeDef led_system; //vert sur la carte - -BUTTON_TypeDef button_rouge; //rouge -BUTTON_TypeDef button_vert; //vert -BUTTON_TypeDef button_jaune; //jaune -BUTTON_TypeDef button_deux_joueur; //gris -BUTTON_TypeDef button_system; //bleu sur la carte - -// fonction pour allumer et eteindre les leds -void fonction_led(char* couleur, int position) { - if (strcmp(couleur,"R")==0 && (position==0)){ //eteind rouge - Led_turnOff(&led_rouge); - } else if (strcmp(couleur,"R")==0 && (position==1)){ //allume rouge - Led_turnOn(&led_rouge); - } else if (strcmp(couleur,"V")==0 && (position==0)){ - Led_turnOff(&led_verte); - } else if (strcmp(couleur,"V")==0 && (position==1)){ - Led_turnOn(&led_verte); - } else if (strcmp(couleur,"J")==0 && (position==0)){ - Led_turnOff(&led_jaune); - } else if (strcmp(couleur,"J")==0 && (position==1)){ - Led_turnOn(&led_jaune); - } else if (strcmp(couleur,"S")==0 && (position==0)){ - Led_turnOff(&led_system); - } else if (strcmp(couleur,"S")==0 && (position==1)){ - Led_turnOn(&led_system); - } -} - -void affiche_lcd(char* contenu, int positiony, int clear) { - if (clear==1){ - lcd_clr(); - } - lcd_gotoxy(0,positiony); - lcd_puts(contenu); -} - -char* choix_aleatoire(void) { - char* couleur_leds[3]={"R","V","J"}; //nos couleurs de led - srand(time(0)); - int aleatoire = (rand() % (2 - 0 + 1)) + 0; //choix entre 0 et 2 pour avoir 3 valeurs differentes (3 couleurs/leds) - char* choix = couleur_leds[aleatoire]; - return choix; -} - -/* USER CODE END 0 */ - -/** - * @brief The application entry point. - * @retval int - */ -int main(void) -{ - /* USER CODE BEGIN 1 */ - - /* USER CODE END 1 */ - - /* MCU Configuration--------------------------------------------------------*/ - - /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); - - /* USER CODE BEGIN Init */ - - /* USER CODE END Init */ - - /* Configure the system clock */ - SystemClock_Config(); - - /* USER CODE BEGIN SysInit */ - - /* USER CODE END SysInit */ - - /* Initialize all configured peripherals */ - MX_GPIO_Init(); - MX_USART2_UART_Init(); - /* USER CODE BEGIN 2 */ - -// - //configuration de l'horloge du système en 16MHz - RCC->CR|=1; //activer HSI - RCC->CFGR&=~(0b11); - RCC->CFGR|=01; //selection de HSI - HAL_InitTick(16000000); -// - -// Init de nos leds et buttons - Led_init(&led_system, GPIOA,5); //led_system sur PA5 - Led_init(&led_rouge, GPIOA,6); //led_rouge sur PA6 - Led_init(&led_verte, GPIOA,7); //led_verte sur PA7 - Led_init(&led_jaune, GPIOB,6); //led_jaune sur PB6 - - Button_init(&button_system, GPIOC, 13); //button_system sur PC13 - Button_init(&button_rouge, GPIOC, 14); //button_rouge sur PC13 - Button_init(&button_vert, GPIOC, 15); //button_vert sur PC13 - Button_init(&button_jaune, GPIOH, 0); //button_jaune sur PH0 - Button_init(&button_deux_joueur, GPIOH, 1); //button_deux_joueur sur PH1 -// - -/* EXEMPLE D'UTILISATION POUR LED ET BUTTON - uint8_t last_button_state = 1; //button non appuyé - uint8_t current_button_state = 1; //button non appuyé - - for (;;) { - //lire l’état courant - current_button_state = Button_State(&button_system); - //si front descendant (bouton appuyé) - if (last_button_state == 1 && (current_button_state == 0)) { - Led_turnOn(&led_system); //allume - //suppression des rebonds - HAL_Delay(20); - } - //si front montant (bouton relâché) - if (last_button_state == 0 && (current_button_state != 0)) { - //suppression des rebonds - HAL_Delay(20); - Led_turnOff(&led_system); //eteind - } - //mise à jour de l’état précédent du bouton - last_button_state = current_button_state; - } -*/ - affiche_lcd("SIMON_STM32",0,1); - - int score = 0; //pour le systeme de score - int deuxieme_joueur_joue = 0; //pour check si le 2e joueur a joué - int score_un=0; //pour store le score du j1 - int score_deux=0; //pour store le score du j1 - char* suite_de_leds[100]={}; //la suite de leds a faire cligoter - - /* USER CODE END 2 */ - - /* Infinite loop */ - - while (1) - { - /* USER CODE BEGIN WHILE */ - lcd_init(); - - -//gestion du mode 2joueurs - uint8_t last_button_2j_state = 1; - uint8_t current_button_2j_state = 1; - int etat_bouton_deux_joueurs=0; - - //lire l’état courant - current_button_2j_state = Button_State(&button_deux_joueur); - //si front descendant (bouton appuyé) - if (last_button_2j_state == 1 && (current_button_2j_state == 0) && (etat_bouton_deux_joueurs==0)) { - etat_bouton_deux_joueurs = 1; - fonction_led("S",1); //allume la led de la carte - } else if (last_button_2j_state == 1 && (current_button_2j_state == 0) && (etat_bouton_deux_joueurs==1)) { - etat_bouton_deux_joueurs = 0; - fonction_led("S",0); //eteind la led de la carte - } - //mise à jour de l’état précédent du bouton - last_button_2j_state = current_button_2j_state; - - -//gestion du bouton start/system - uint8_t last_button_system_state = 1; //button non appuyé - uint8_t current_button_system_state = 1; //button non appuyé - int etat_bouton_start=0; - - //lire l’état courant - current_button_system_state = Button_State(&button_system); - //si front descendant (bouton appuyé) - if (last_button_system_state == 1 && (current_button_system_state == 0) && (etat_bouton_deux_joueurs==0)) { - etat_bouton_start = 1; - } else if (last_button_system_state == 1 && (current_button_system_state == 0) && (etat_bouton_deux_joueurs==1)) { - etat_bouton_start = 0; - } - //mise à jour de l’état précédent du bouton - last_button_system_state = current_button_system_state; - - - int perdu = 0; //pour check si le j a perdu - - if (etat_bouton_start){ -//Sequence d'allumage - affiche_lcd("LET'S GO !",0,1); - fonction_led("R", 1); - HAL_Delay(250); - fonction_led("V", 1); - HAL_Delay(250); - fonction_led("J", 1); - HAL_Delay(250); - fonction_led("R", 0); - HAL_Delay(250); - fonction_led("V", 0); - HAL_Delay(250); - fonction_led("J", 0); - HAL_Delay(250); - - if (etat_bouton_deux_joueurs && !deuxieme_joueur_joue){ //lancement du mode 2J - affiche_lcd("MODE 2J",0,1); - affiche_lcd("J1!",1,0); - } - else if (!etat_bouton_deux_joueurs && !deuxieme_joueur_joue) { //lancement du mode 1J - affiche_lcd("MODE 1J",0,1); - } - - while (perdu!= 1) { //ici on lance un niveau (suite de leds), tant qu'on a pas perdu - - suite_de_leds[score] = choix_aleatoire(); - score++; - for (int i = 0; iscore_deux){affiche_lcd("JOUEUR 1 GAGNE!",0,1);} - else if (score_un