BE-CHTI-2020.2021/PjtKEIL_StepDFTREEL/Src/principal.c

72 lines
1.4 KiB
C

#include "DriverJeuLaser.h"
//short int = 16 bit signé
//char = 8 bit non signé (0 à 255)
extern int DFT_ModuleAuCarre(short int*, char);
extern short int LeSignal;
short int dma_buff[64] ;
int res[64];
void faire_dft() {
//on fait la mesure
Start_DMA1(64);
Wait_On_End_Of_DMA1();
Stop_DMA1;
//on l'exploite
char k;
for(k=0;k<64;k++){
res[k] = DFT_ModuleAuCarre(dma_buff, k);
}
}
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
CLOCK_Configure();
// 72Mhz pour 1s
// ? ticks pour 5*10^-3 s
// règle de trois.
//on décide de faire une DFT toutes les 5 ms
Systick_Period_ff(360000);
Systick_Prio_IT(1,faire_dft);
SysTick_On;
SysTick_Enable_IT; // activer l'interruption configurée
Init_Conversion_On_Trig_Timer_ff( ADC1, TIM2_CC2, 225 );
//il faut configurer la fréquence d'échantillonage de l'ADC
Init_TimingADC_ActiveADC_ff(ADC1,72);
Single_Channel_ADC(ADC1,2);
Init_Conversion_On_Trig_Timer_ff( ADC1, TIM2_CC2, 225 );
Init_ADC1_DMA1( 0, dma_buff );
//============================================================================
while (1)
{
}
}