DFT finis et début des questions sur la DFT en temps réel

Bu işleme şunda yer alıyor:
Eliot Revol 2023-04-14 18:20:38 +02:00
ebeveyn e94b2cabe5
işleme d21148a8c8
4 değiştirilmiş dosya ile 36 ekleme ve 9 silme

Dosyayı Görüntüle

@ -41,6 +41,7 @@ boucle cmp r2,#63
ldr r6, =TabCos
ldr r7, =TabSin
;mul r5, r5, r1
ldrsh r6,[r6,r5]
ldrsh r7,[r7,r5]
mul r5, r6, r4

Dosyayı Görüntüle

@ -5,7 +5,14 @@
extern int DFT_ModuleAuCarre(short int* Signal64ech, char k);
extern short int LeSignal[];
int result;
//int result;
void callback() {
Start_DMA1(64);
Wait_On_End_Of_DMA1();
Stop_DMA1;
}
int main(void)
{
@ -14,7 +21,7 @@ int main(void)
// ===========================================================================
int result = DFT_ModuleAuCarre(&(LeSignal[0]),1);
//int result = DFT_ModuleAuCarre(&(LeSignal[0]),1);
//printf("le résultat : %d \n", result);
@ -22,9 +29,25 @@ int main(void)
CLOCK_Configure();
//============================================================================
GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL);
PWM_Init_ff(TIM2,3,720);
short int dma_buf[64];
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 );
Systick_Period_ff(5*72*1000);
Systick_Prio_IT(0,callback);
SysTick_Enable_IT;
SysTick_On;
//============================================================================
while (1)
{

Dosyayı Görüntüle

@ -29,7 +29,7 @@
DFT_ModuleAuCarre proc
push{lr,r4,r5,r6,r7,r8,r9}
push{lr,r4-r9}
mov r2,#0
mov r3,#0
mov r9,#0
@ -40,6 +40,7 @@ boucle cmp r2,#63
ldrsh r4,[r0,r5]
ldr r6, =TabCos
ldr r7, =TabSin
;mul r5, r5, r1
ldrsh r6,[r6,r5]
ldrsh r7,[r7,r5]
@ -57,7 +58,9 @@ fin_boucle
adds r0,r2,r4
adc r1, r3, r5
pop{pc,r4,r5,r6,r7,r8,r9}
mov r0,r1
pop{pc,r4-r9}
endp

Dosyayı Görüntüle

@ -5,7 +5,7 @@
extern int DFT_ModuleAuCarre(short int* Signal64ech, char k);
extern short int LeSignal[];
int result;
int result;
int main(void)
{
@ -14,7 +14,7 @@ int main(void)
// ===========================================================================
int result = DFT_ModuleAuCarre(&(LeSignal[0]),1);
//printf("le résultat : %d \n", result);
@ -22,7 +22,7 @@ int main(void)
CLOCK_Configure();
result = DFT_ModuleAuCarre(&(LeSignal[0]),1);
//============================================================================