Ynt: Blok içinde array tanımlama sorunu

Başlatan Gökhan BEKEN, 31 Ağustos 2015, 12:24:27

Gökhan BEKEN

unsigned int a=0,b=0;
	unsigned short stereo[DMA_BUFFER_SIZE]; //bu dizi main fonksiyonunun içinde tanimlanirsa ses cikmiyor
	unsigned int sayac=0;
	while(1)
	{
		if(izin==1){
				a=0;b=0;
				for(a=0;a<DMA_BUFFER_SIZE;a+=2){
						stereo[a]=sesWav[sayac+b];
						stereo[a+1]=stereo[a];
						b++;
				}
				dmagonder((unsigned short*)&stereo[0]);
				sayac+=DMA_BUFFER_SIZE/2;
				if(sayac>DOSYA_BOYUTU)
				sayac=0;
			
				izin=0;
		}
	}

Yukarıdaki kodda "stereo" adlı dizi, main fonksiyonunun içinde tanımlanırsa, ses çıkmıyor, ama main.h içinde veya main fonksiyonunundan önce tanımlarsam sorun yok. Neden olabilir? C ile mi alakalı, optimizasyon ile mi alakalı anlamadım, (bazı sorunlardan dolayı optimizasyon seviye 0'da deneyemiyorum)
Aydınlatırsanız sevinirim.

mesaj birleştirme:: 31 Ağustos 2015, 12:28:41

DMA_BUFFER_SIZE sabiti 240 olarak tanımlı iken bu sorun yok, fakat 480 yaparsam sorun var.
Özel mesaj okumuyorum, lütfen göndermeyin.

AsHeS


Gökhan BEKEN

Bir sorum daha var, bir bayrağım var, ben bunu int veya unsigned int olarak tanımlarsam, ilk değer olarak 1 verdiğim halde program içinde 0 olarak görüyor. (başka hiç bir yerde değer vermediğim halde böyle)
Ama char veya unsigned char yaparsam bozulmuyor. Bu sorun da beni bayağı uğraştırdı. Sebebini bilen var mı?
Özel mesaj okumuyorum, lütfen göndermeyin.