diff --git a/soft/PjtKEIL_StepDMA/Src/principal.c b/soft/PjtKEIL_StepDMA/Src/principal.c
index 4d677fd..fd5e3b3 100644
--- a/soft/PjtKEIL_StepDMA/Src/principal.c
+++ b/soft/PjtKEIL_StepDMA/Src/principal.c
@@ -4,13 +4,17 @@
short int dma_buff[64];
int module_dft[64];
extern short LeSignal;
+int max = 0;
void systick_func() {
Start_DMA1(64);
Wait_On_End_Of_DMA1();
Stop_DMA1;
for (int k= 0; k < 64; ++k) {
- module_dft[k] = DFT_ModuleAuCarre(dma_buff, k) >> 20;
+ module_dft[k] = DFT_ModuleAuCarre(dma_buff, k);
+ if (module_dft[17] > 0x1000) {
+ max = module_dft[17];
+ }
}
}
diff --git a/soft/PjtKEIL_StepFinal/Src/principal.c b/soft/PjtKEIL_StepFinal/Src/principal.c
index 73a81b4..5fd76f6 100644
--- a/soft/PjtKEIL_StepFinal/Src/principal.c
+++ b/soft/PjtKEIL_StepFinal/Src/principal.c
@@ -1,40 +1,73 @@
#include "DriverJeuLaser.h"
#include "module_carre.h"
#include "GestionSon.h"
+#include "Affichage_Valise.h"
-#define NB_JOUEURS 6
-#define SEUIL_ACCEPT_SIGNAL 0x80
+#define NB_JOUEURS 4
+#define SEUIL_ACCEPT_SIGNAL 0x2
#define FREQ_TO_INT(f) (64 * f / 320)
#define TE_IN_TICKS 6552
#define PERIODE_PWM 720
+// 50ms @ 72MHz
+#define PERIODE_AFFICHAGE 3600
+
short int dma_buff[64];
int module_dft[NB_JOUEURS];
-// int module_dft[64];
+int module_dft[64];
int score_joueurs[NB_JOUEURS];
extern short LeSignal;
-int freq_joueurs[NB_JOUEURS] = {FREQ_TO_INT(85), FREQ_TO_INT(90), FREQ_TO_INT(95), FREQ_TO_INT(100), FREQ_TO_INT(115), FREQ_TO_INT(120)};
-
+int freq_joueurs[] = {FREQ_TO_INT(85), FREQ_TO_INT(90), FREQ_TO_INT(95), FREQ_TO_INT(100), FREQ_TO_INT(115), FREQ_TO_INT(120)};
+char cible_ordre[] = {LED_Cible_1, LED_Cible_2, LED_Cible_3, LED_Cible_4};
+char current_cible_index = 0;
+char bonne_cible_touchee = 0;
+char update = 0;
extern short Sortie_son;
-void systick_func() {
- int module;
- Start_DMA1(64);
- Wait_On_End_Of_DMA1();
- Stop_DMA1;
- for (int i = 0; i < NB_JOUEURS; ++i) {
- module = DFT_ModuleAuCarre(dma_buff, freq_joueurs[i]);
-// module_dft[i] = module;
- if (module > SEUIL_ACCEPT_SIGNAL) {
- score_joueurs[i]++;
- StartSon();
- }
- }
-// for (int i = 0; i < 64; ++i) {
-// module_dft[i] = DFT_ModuleAuCarre(dma_buff, i);
+//void update_score() {
+// if (update) {
+// for (int i = 0; i < NB_JOUEURS; ++i) {
+// Prepare_Afficheur(i + 1, score_joueurs[i]);
+// }
+// if (bonne_cible_touchee) {
+// Prepare_Set_LED(LED_LCD_V);
+// } else {
+// Prepare_Set_LED(LED_LCD_R);
+// }
+// Mise_A_Jour_Afficheurs_LED();
+// Choix_Capteur(current_cible_index + 1);
// }
+//
+//}
+
+void systick_func() {
+// int module;
+// Start_DMA1(64);
+// Wait_On_End_Of_DMA1();
+// Stop_DMA1;
+// for (int i = 0; i < NB_JOUEURS; ++i) {
+// module = DFT_ModuleAuCarre(dma_buff, freq_joueurs[i]);
+//// module_dft[i] = module;
+// if (module > SEUIL_ACCEPT_SIGNAL) {
+// if (i == current_cible_index) {
+// score_joueurs[i]++;
+// Prepare_Afficheur(i + 1, score_joueurs[i]);
+// Prepare_Set_LED(LED_LCD_V);
+// StartSon();
+// } else {
+// Prepare_Set_LED(LED_LCD_R);
+// }
+// Prepare_Clear_LED(cible_ordre[current_cible_index]);
+// current_cible_index = (current_cible_index + 1) % 4;
+// Prepare_Set_LED(cible_ordre[current_cible_index]);
+//
+// }
+// }
+ for (int i = 0; i < 64; ++i) {
+ module_dft[i] = DFT_ModuleAuCarre(dma_buff, i);
+ }
}
extern short LeSignal;
@@ -46,7 +79,7 @@ int main(void)
// ============= INIT PERIPH (faites qu'une seule fois) =====================
// ===========================================================================
-// Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers
+ // Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers
CLOCK_Configure();
// 5ms = n * 1/72MHz => n = 5ms * 72MHz = 360 * 10 ^ 6
Systick_Period_ff(360000000);
@@ -54,6 +87,7 @@ Systick_Period_ff(360000000);
Systick_Prio_IT(0, systick_func);
SysTick_On;
SysTick_Enable_IT;
+
Init_TimingADC_ActiveADC_ff( ADC1, 72 );
Single_Channel_ADC( ADC1, 2 );
@@ -62,15 +96,37 @@ Init_Conversion_On_Trig_Timer_ff(ADC1, TIM2_CC2, 225);
Init_ADC1_DMA1(0, dma_buff);
// Set up interuption for the sound effect
-Timer_1234_Init_ff(TIM4, TE_IN_TICKS);
-Active_IT_Debordement_Timer(TIM4, 2, GestionSon);
-GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL);
-PWM_Init_ff(TIM3, 3, PERIODE_PWM);
+//Timer_1234_Init_ff(TIM4, TE_IN_TICKS);
+//Active_IT_Debordement_Timer(TIM4, 2, GestionSon);
+//GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL);
+//PWM_Init_ff(TIM3, 3, PERIODE_PWM);
+
+//Timer_1234_Init_ff(TIM3, PERIODE_AFFICHAGE);
+//Active_IT_Debordement_Timer(TIM3, 9, update_score);
+
+//// Test pour enlever l'erreur en PA2
+
+Init_Affichage();
for (int i = 0; i < NB_JOUEURS; ++i) {
score_joueurs[i] = 0;
+ Prepare_Afficheur(i + 1, 0);
+ Prepare_Clear_Point_Unite(i + 1);
+
}
+Prepare_Clear_LED(LED_LCD_R);
+Prepare_Clear_LED(LED_LCD_V);
+
+for (int i = 0; i < 4; ++i) {
+ Prepare_Clear_LED(cible_ordre[i]);
+}
+Prepare_Set_LED(cible_ordre[current_cible_index]);
+Choix_Capteur(current_cible_index + 1);
+
+Mise_A_Jour_Afficheurs_LED();
+
+StopSon();
//============================================================================
diff --git a/soft/PjtKEIL_StepFinal/StepDFT.uvprojx b/soft/PjtKEIL_StepFinal/StepDFT.uvprojx
index b6cf95d..9c7fdf5 100644
--- a/soft/PjtKEIL_StepFinal/StepDFT.uvprojx
+++ b/soft/PjtKEIL_StepFinal/StepDFT.uvprojx
@@ -418,6 +418,11 @@
2
.\Src\bruitverre.asm
+
+ Affichage_Valise.h
+ 5
+ .\Src\Affichage_Valise.h
+
@@ -438,6 +443,11 @@
4
.\Driver\DriverJeuLaser.lib
+
+ affichage_valise.o
+ 3
+ .\Obj\affichage_valise.o
+
@@ -554,8 +564,8 @@
-pSTM32F103RB
SARMCM3.DLL
- TCM.DLL
- -pCM3
+ DARMSTM.DLL
+ -pSTM32F103RB
@@ -857,6 +867,11 @@
2
.\Src\bruitverre.asm
+
+ Affichage_Valise.h
+ 5
+ .\Src\Affichage_Valise.h
+
@@ -877,6 +892,11 @@
4
.\Driver\DriverJeuLaser.lib
+
+ affichage_valise.o
+ 3
+ .\Obj\affichage_valise.o
+
@@ -1365,6 +1385,11 @@
2
.\Src\bruitverre.asm
+
+ Affichage_Valise.h
+ 5
+ .\Src\Affichage_Valise.h
+
@@ -1385,6 +1410,11 @@
4
.\Driver\DriverJeuLaser.lib
+
+ affichage_valise.o
+ 3
+ .\Obj\affichage_valise.o
+