DFT reel terminer
This commit is contained in:
		
							parent
							
								
									d6e97b726b
								
							
						
					
					
						commit
						db3b79a29b
					
				
					 4 changed files with 1391 additions and 1364 deletions
				
			
		|  | @ -45,6 +45,7 @@ Sommation | |||
| 	 add r2,r2, r10 ;ajout de la partie imaginaire au résultat (conservation du format) -->11.11 a cause  de 64 additions
 | ||||
| 	  | ||||
| 	 add r7, r1 ; ajout de k à n*k ce qui fait p= (n+1)*k
 | ||||
| 	 and r7, 63 ;modulo 64 pour ne pas depasser la taille du tableau 
 | ||||
| 	 add r4, r4, #1 ; incrémentation de l'indice n
 | ||||
| 	 cmp r4 ,#64 ; comparaison de n à 64
 | ||||
| 	 blt Sommation ; si n<64 on recommence la boucle
 | ||||
|  |  | |||
|  | @ -2,10 +2,23 @@ | |||
| 
 | ||||
| #include "DriverJeuLaser.h" | ||||
| 
 | ||||
| 
 | ||||
| extern short LeSignal; | ||||
| extern int DFT_ModuleAuCarre(short int *Signal64ech, char k);		 | ||||
| 
 | ||||
| int S[64]; | ||||
| short dma_buf[64]; //Pour stocker les valeurs prises par l'adc
 | ||||
| 
 | ||||
| void Callback_Systick (){ | ||||
| 	 | ||||
| 	Start_DMA1(64); //demarrage de l'echantillage de 64 points 
 | ||||
|   Wait_On_End_Of_DMA1(); | ||||
|   Stop_DMA1; | ||||
| 	 | ||||
| 	for (int k= 0; k < 64; ++k) { | ||||
| 	S[k] = DFT_ModuleAuCarre( dma_buf, k); | ||||
| }	 | ||||
| } | ||||
| 
 | ||||
| int main(void) | ||||
| { | ||||
|  | @ -18,12 +31,24 @@ int main(void) | |||
| // Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers
 | ||||
| CLOCK_Configure(); | ||||
| 
 | ||||
| 	//configuration du timer Systick
 | ||||
| Systick_Period_ff( 360000 ); //  a/(72*10**6) =5 ms
 | ||||
| Systick_Prio_IT( 2, Callback_Systick ); | ||||
| SysTick_On ; | ||||
| SysTick_Enable_IT ; | ||||
| 
 | ||||
| 	//configuration pour ADC1 et DMA
 | ||||
| 	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_buf ); | ||||
| 
 | ||||
| 
 | ||||
| 	 | ||||
| for (int k= 0; k < 64; ++k) { | ||||
| 	 | ||||
| /*or (int k= 0; k < 64; ++k) {
 | ||||
| 	S[k] = DFT_ModuleAuCarre(&LeSignal, k); | ||||
| }	 | ||||
| }	*/ | ||||
| //============================================================================	
 | ||||
| 	 | ||||
| 
 | ||||
|  |  | |||
|  | @ -45,6 +45,7 @@ Sommation | |||
| 	 add r2,r2, r10 ;ajout de la partie imaginaire au résultat (conservation du format) -->11.11 a cause  de 64 additions
 | ||||
| 	  | ||||
| 	 add r7, r1 ; ajout de k à n*k ce qui fait p= (n+1)*k
 | ||||
| 	 and r7, 63 ;modulo 64 pour ne pas depasser la taille du tableau 
 | ||||
| 	 add r4, r4, #1 ; incrémentation de l'indice n
 | ||||
| 	 cmp r4 ,#64 ; comparaison de n à 64
 | ||||
| 	 blt Sommation ; si n<64 on recommence la boucle
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue