Herkese kolay gelsin.
Bu program parçacığında dma ile adc okunduktan sonra okuma tamamlanınca dma kesmesi oluşuyor ve kesme içinde
adc_verisi_hazirmi=1
yapılıyor. while döngüsünün içini boş bırakırsam veya aşağıdaki şekilde bir kullanım yaptığımda(herhangi bir değişkene öylesine değer yüklediğimde) sistem cevap vermiyor, program while döngüsünden çıkamıyor.
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)adcDt,8);
while(adc_verisi_hazirmi==0){
degiskenX=0;//*******
}
adc_veri[0]= (adcDt[0] + adcDt[1] + adcDt[2] + adcDt[3] + .........
ama while içinde rasgele bir değişkene değer yüklemek yerine aşağıdaki gibi while içinde bir ledi yakarsam kod sıkıntısız işliyor, kesme oluşunca while döngüsünden çıkabiliyorum. Bunun sebebi ne olabilir?
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)adcDt,8);
while(adc_verisi_hazirmi==0){
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);//*******
}
adc_veri[0]= (adcDt[0] + adcDt[1] + adcDt[2] + adcDt[3] + .........
break; neden kullanmiyorsunuz, sorun mu cikariyor.
Alıntı yapılan: tekosis - 19 Kasım 2018, 18:16:01Bunun sebebi ne olabilir?
@tekosis adc_verisi_hazirmi degiskenini volatile tanimlayin
yada
compiler optimizasyonlarini kapatiniz.
Forumda bu konular 4759 kere (yaklasik olarak) konusulmustu, o basliklari inceleyebilirsiniz.
adc_verisi_hazirmi degiskenini volatile tanimlarsan sorunun cozulebilir. Kolay gelsin.
@digiman @ecunnu teşekkür ederim problem "volitale" ile halloldu.
@mufitsozen hocam size de teşekkür ederim. Ayrıca "4759 kere (yaklasik olarak) konusulmustu" demişsiniz, haklısınız. yorgunluktan googleye bakmak bile aklıma gelmedi.
Alıntı yapılan: tekosis - 20 Kasım 2018, 00:20:03@digiman @ecunnu teşekkür ederim problem "volitale" ile halloldu.
@mufitsozen hocam size de teşekkür ederim. Ayrıca "4759 kere (yaklasik olarak) konusulmustu" demişsiniz, haklısınız. yorgunluktan googleye bakmak bile aklıma gelmedi.
hangi compiler kullaniyorsun bilemiyorum ama "volitale" ile sorun cozulmez, illaki derleme sirasinda hata verir. :P
beynim yandı hocam :)
https://youtu.be/roq4cgowuSs?t=19
http://bilgisayarkavramlari.sadievrenseker.com/2010/06/26/volatile-tip-tanimlayicisi/
Yeri gelmişken bu optimizasyonlar konusunu birisi açıklayabilir mi? Çok basit bir hatada 2 günüm gitmişti bu yüzden. Ben tam olarak optimizasyon kısmını anlayamadım. bir de heap size ve stack size konusu var bunu da tam anlayamadım. Bu konuda 4759 kere konuşuldu mu bilmiyorum ama.Teşekkürler
Alıntı yapılan: argelojik - 20 Kasım 2018, 13:36:31...
Ben tam olarak optimizasyon kısmını anlayamadım. bir de heap size ve stack size konusu var bunu da tam anlayamadım. Bu konuda 4759 kere konuşuldu mu bilmiyorum ama.Teşekkürler
Yok onlar en fazla 4758 defa (yaklaşık olarak) konuşulmuştur.
Bu sorular ben mevsimlerin nasıl oluştuğunu anlayamadım diyen bir coğrafyacı tadında oluyor.
Cevabı her yerde var yalnız temel birkaç konunun bilinmesi gerekiyor anlamak için.
Lojik kapılar, flip flop lar, işlemci mimarisi, mcu yapısı, opcode lar
bilinirse zaten anlamış olursunuz.
İngilizce kaynak isterseniz birkaç video önerebilirim.