Merhabalar
sound_pack içine engine_sound_sample nin içindeki verileri indeks değeri kadar dizinden başlayıp alıyorsun. DMA an ise sound_pack dizisini yolluyorsun ama ses verilerin değişsede DMA ile yollayacağın paket sayısını hep sabit tutmuşsun. DMA dan yolladığın veri adedini SHIFT ile sabit tutmuşsun, SHIFT içeriği adededi değişmemiş. indeks in değeri ile ilgili işlemler yapmışsın ada SHIFT hep sabit örneğin 10.000 veri almışsın ama
SHIFT in değeri belki 15.000 belki 10.000 veriyi 15.000 olarak yolladın arada boş veri paketlerin olmuş olabilir yada tam tersi gibi....
burada indeks+SHIFT kadar veri aldın
Kod:
for(int k=indeks;k<(indeks+SHIFT);k++)
{
sound_pack[k-indeks]=engine_sound_sample[k];
}
ama aldığın veri indeks içi değişip indeks+SHIFT olmasına rağmen SHIFT kadar paket yolluyorsun.
Kod:
HAL_I2S_Transmit_DMA(&hi2s3, sound_pack, SHIFT);