forked from acco/chti23
StepFin FONCTIONNEL le JEU MARCHE
This commit is contained in:
parent
49b58378be
commit
5a49f7278a
2 changed files with 75 additions and 13 deletions
|
@ -1,14 +1,19 @@
|
||||||
#include "DriverJeuLaser.h"
|
#include "DriverJeuLaser.h"
|
||||||
#include "GestionSon.h"
|
#include "GestionSon.h"
|
||||||
|
#include "Affichage_Valise.h"
|
||||||
|
|
||||||
extern int DFT_ModuleAuCarre(short int* Signal64ech, char k);
|
extern int DFT_ModuleAuCarre(short int* Signal64ech, char k);
|
||||||
extern int16_t LeSignal;
|
extern int16_t LeSignal;
|
||||||
|
|
||||||
|
#define seuil_activation 350000
|
||||||
|
|
||||||
unsigned int test = 0;
|
unsigned int test = 0;
|
||||||
short int dma_buf[64];
|
short int dma_buf[64];
|
||||||
int coeff[7];
|
int coeff[7];
|
||||||
int score[6];
|
int score[6];
|
||||||
int attendre[6];
|
int attendre[6];
|
||||||
|
int changed[6];
|
||||||
|
int curr_cible = 0;
|
||||||
|
|
||||||
void mesure() {
|
void mesure() {
|
||||||
Start_DMA1(64);
|
Start_DMA1(64);
|
||||||
|
@ -19,9 +24,36 @@ void mesure() {
|
||||||
coeff[1] = DFT_ModuleAuCarre(&(dma_buf[0]), 18);
|
coeff[1] = DFT_ModuleAuCarre(&(dma_buf[0]), 18);
|
||||||
coeff[2] = DFT_ModuleAuCarre(&(dma_buf[0]), 19);
|
coeff[2] = DFT_ModuleAuCarre(&(dma_buf[0]), 19);
|
||||||
coeff[3] = DFT_ModuleAuCarre(&(dma_buf[0]), 20);
|
coeff[3] = DFT_ModuleAuCarre(&(dma_buf[0]), 20);
|
||||||
coeff[4] = DFT_ModuleAuCarre(&(dma_buf[0]), 23);
|
//coeff[4] = DFT_ModuleAuCarre(&(dma_buf[0]), 23);
|
||||||
coeff[5] = DFT_ModuleAuCarre(&(dma_buf[0]), 24);
|
//coeff[5] = DFT_ModuleAuCarre(&(dma_buf[0]), 24);
|
||||||
coeff[6] = DFT_ModuleAuCarre(&(dma_buf[0]), 21);
|
coeff[6] = DFT_ModuleAuCarre(&(dma_buf[0]), 21);
|
||||||
|
|
||||||
|
if (coeff[6] < seuil_activation)
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
if (attendre[i] == 0 && coeff[i] > seuil_activation) {
|
||||||
|
StartSon();
|
||||||
|
score[i] = (score[i] + 1) % 100;
|
||||||
|
Prepare_Afficheur(i+1, score[i]);
|
||||||
|
attendre[i] = 1;
|
||||||
|
}
|
||||||
|
else if (attendre[i] == 1 && coeff[i] < seuil_activation)
|
||||||
|
attendre[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void update_cibles(int oups) {
|
||||||
|
if (oups == 13) {
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
if (i == curr_cible) {
|
||||||
|
Choix_Capteur(curr_cible + 1);
|
||||||
|
Prepare_Set_LED(curr_cible);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Prepare_Clear_LED(i);
|
||||||
|
}
|
||||||
|
curr_cible = (curr_cible + 1) & 3;
|
||||||
|
}
|
||||||
|
Mise_A_Jour_Afficheurs_LED();
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
|
@ -34,39 +66,39 @@ int main(void)
|
||||||
// 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();
|
CLOCK_Configure();
|
||||||
|
|
||||||
|
//init systeme ADC/DMA
|
||||||
Init_TimingADC_ActiveADC_ff(ADC1, 72);
|
Init_TimingADC_ActiveADC_ff(ADC1, 72);
|
||||||
Single_Channel_ADC(ADC1, 2);
|
Single_Channel_ADC(ADC1, 2);
|
||||||
Init_Conversion_On_Trig_Timer_ff(ADC1, TIM2_CC2, 225);
|
Init_Conversion_On_Trig_Timer_ff(ADC1, TIM2_CC2, 225);
|
||||||
Init_ADC1_DMA1(0, dma_buf);
|
Init_ADC1_DMA1(0, dma_buf);
|
||||||
|
|
||||||
|
//systick pour les mesures
|
||||||
Systick_Period_ff(72000000 * 5 / 1000);
|
Systick_Period_ff(72000000 * 5 / 1000);
|
||||||
Systick_Prio_IT(0, mesure);
|
Systick_Prio_IT(0, mesure);
|
||||||
SysTick_On;
|
SysTick_On;
|
||||||
SysTick_Enable_IT;
|
SysTick_Enable_IT;
|
||||||
|
|
||||||
|
//timer pour le son
|
||||||
GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL);
|
GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL);
|
||||||
PWM_Init_ff(TIM3, 3, 720); // f_PWM = 72MHz/720 = 100kHz
|
PWM_Init_ff(TIM3, 3, 720); // f_PWM = 72MHz/720 = 100kHz
|
||||||
Timer_1234_Init_ff(TIM4, 6552); // periode_son/f_CPU = (91*10^-6)*(72*10^6) = 6552
|
Timer_1234_Init_ff(TIM4, 6552); // periode_son/f_CPU = (91*10^-6)*(72*10^6) = 6552
|
||||||
Active_IT_Debordement_Timer(TIM4, 2, CallbackSon);
|
Active_IT_Debordement_Timer(TIM4, 2, CallbackSon);
|
||||||
|
|
||||||
//============================================================================
|
//init affichage malette
|
||||||
|
Init_Affichage();
|
||||||
|
|
||||||
|
//init tableau score
|
||||||
for (int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
score[i] = 0;
|
score[i] = 0;
|
||||||
attendre[i] = 0;
|
attendre[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
int oups = 0;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (coeff[6] < 10000000)
|
oups = (oups + 1) % 2500;
|
||||||
for (int i = 0; i < 6; i++) {
|
update_cibles(oups);
|
||||||
if (attendre[i] == 0 && coeff[i] > 10000000) {
|
|
||||||
StartSon();
|
|
||||||
score[i]++;
|
|
||||||
attendre[i] = 1;
|
|
||||||
}
|
|
||||||
else if (attendre[i] == 1 && coeff[i] < 10000000)
|
|
||||||
attendre[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -413,6 +413,16 @@
|
||||||
<FileType>2</FileType>
|
<FileType>2</FileType>
|
||||||
<FilePath>.\Src\GestionSon.s</FilePath>
|
<FilePath>.\Src\GestionSon.s</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>Affichage_Valise.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\Src\Affichage_Valise.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>affichage_valise.o</FileName>
|
||||||
|
<FileType>3</FileType>
|
||||||
|
<FilePath>.\Src\affichage_valise.o</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
@ -847,6 +857,16 @@
|
||||||
<FileType>2</FileType>
|
<FileType>2</FileType>
|
||||||
<FilePath>.\Src\GestionSon.s</FilePath>
|
<FilePath>.\Src\GestionSon.s</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>Affichage_Valise.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\Src\Affichage_Valise.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>affichage_valise.o</FileName>
|
||||||
|
<FileType>3</FileType>
|
||||||
|
<FilePath>.\Src\affichage_valise.o</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
@ -1350,6 +1370,16 @@
|
||||||
<FileType>2</FileType>
|
<FileType>2</FileType>
|
||||||
<FilePath>.\Src\GestionSon.s</FilePath>
|
<FilePath>.\Src\GestionSon.s</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>Affichage_Valise.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\Src\Affichage_Valise.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>affichage_valise.o</FileName>
|
||||||
|
<FileType>3</FileType>
|
||||||
|
<FilePath>.\Src\affichage_valise.o</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
|
Loading…
Reference in a new issue