01 Aralık 2021, 19:14:07

Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d


Ornek sorular problemler

Başlatan bunalmis, 24 Aralık 2011, 03:52:36

z

24 Aralık 2011, 03:52:36 Son düzenlenme: 24 Aralık 2011, 03:55:01 bunalmis
Önümüzdeki hafta büyük çoğunluk kartlarına ulaşmış olacak.

ARM öğreniyoruz ana başlığında değişik alt başlıklar açtım.  Bunlardan https://www.picproje.org/index.php/topic,35721.0.html başlığı üzerine çok fazla eğilemeyeceğim. Çünkü başlık altındaki konular tercüme gerektiriyor ve Rehber dokümanımız çok kalın.

Özellikle üzerinde durduğum başlık https://www.picproje.org/index.php/topic,35896.0.html başlığı.

Kursumuzu takip edenlerden isteğim bu programları incelemeleri. Tekbir eksik nokta kalmayacak şekilde anlamadıkları yerleri tartışmaya açmaları.

Bu başlık altında kendinizi sınamanız için sorularım olacak. Sorulara muhakkak kafa yormanız gerekiyor.

Elinizden düşürmemeniz gereken iki dokuman var. Birisi REHBER diğeri HARD.

Örnek programları tek tek inceleyip kendi kendinize daima şu soruyu sormalısınız. 

Bu registere b
u adam niçin bu sayıyı yükledi?

Sınavlarımızda REHBER ve HARD açıktır. Bu dokümanlardan kopya çekmeyi öğrenmelisiniz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

24 Aralık 2011, 04:45:54 #1 Son düzenlenme: 24 Aralık 2011, 21:06:06 bunalmis
Soru 1

Aşağıdaki program CPU'nun hangi frekansda koşmasına neden olur? AHB ve APB frekansları nedir?

Yol gösterme: Rehber ve Hard dokumandan clock uretimle ilgili sayfaları bulun.
Reset ardından registerlerin almış olduğu default değerleri öğrenin daha sonra bu verileri yorumlayarak CPU clk frekansını tespit edin.


#include "STM32F4xx.h"   

void SystemInit() 
{     
    
RCC->AHB1ENR|=0x00000008;    // GPIOD donanımının clock sinyalini uygulayalım     
    
GPIOD->MODER=0x55000000;     // GPIOD nin 15, 14, 13, 12 pinleri cikis tanimlandi (Ledler bu pinlerde)     
    
GPIOD->OSPEEDR0xFFFFFFFF;  // GPIOD nin tum cikislari en yuksek hizda kullanacagiz  
}  

int main() 
{     
    while(
1)    
      {      
         
GPIOD->ODR0x0000F000;     // Ledler yansin      
         
GPIOD->ODR0x00000000;     // Ledler sonsun    
       

}

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Soru 2

STM32F4 Discovery kitimizde bildiginiz gibi 8Mhz Xtal bulunmaktadir.

CPU yu 23.500 Mhz (23500 Khz) de calistiracak SystemInit fonksiyonunu yazin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

24 Aralık 2011, 20:54:50 #3 Son düzenlenme: 25 Aralık 2011, 01:21:27 bunalmis
Soru 3

Programin tepesinde

#define Fcpu xxxx
#define Fahb yyyy
#define Fapb1 zzzz
#define Fapb2 www

seklinde tanim yapilmistir. Burada xxxx, yyyy, zzzz,wwww Hertz cinsinden frekans degerleridir.

CPU xtal ile beslenecektir.

Systeminit fonksiyonu CPU nun kosacagi frekans degerini Fcpu dan, AHB,  APB1 ve APB2 frekanslarini ise Fahb, Fapb1 ve Fapb2 den ogrenecek ve
gerekli register atamalarini yaparak clocklari uretecektir.

Eger define ile tanimlanan frekans degerleri gerceklenemiyorsa, CPU 16 Mhz de internal RC osilator ile calisarak sonsuz donguye girecek ve Ramin 0x20000000 adresine neden basarisiz olduguna ait 1 bytelik hata kodu yerlestirecektir.

Hata kodlari.

0.bit = 1 => Fcpu frekansini elde edemem
1.bit = 1 => Fahb frekansini elde edemem
2.bit = 1 => Fapb1 frekansini elde edemem
3.bit = 1 => Fapb2 frekansini elde edemem

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

24 Aralık 2011, 21:05:38 #4 Son düzenlenme: 24 Aralık 2011, 21:35:05 bunalmis
Soru 4

https://www.picproje.org/index.php/topic,35896.0.html  adresinde  Timer 7 kullanarak Ledleri flash eden program (Interrupt kullanılmıyor)

basligini bulup sozkonusu programa goz atin ve ayni programi diger timerlarla yapin. (Mesela Timer 7 ile değil de Timer 1 ile vs...)

Kodunuzu derleyip calistirin ledlerin yanip sondugunu gorun.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Soru 5

Mavi butona basildiginda interrupt ureten ve interrupt rutininde yesil ledi toggle eden program parcacigini yazin. Diger 3 led sonuk kalsin.




Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Soru 6

Parmaklarinizi yaladiginizda elektriksel iletkenligi yukselir. Parmaklarinizdan birisisyle 3v a diger parmaginizi da bir ADC girisine dokunursaniz ADC girisine voltaj uygulamis olursunuz.
Dokunma esnasinda parmaklarinizla pine yapacaginiz baskiyi ayarlayarak ADC giris pinindeki voltaji da ayarlamis olursunuz.

ADC donanimini harekete gecirip, ADC amacli kullanima uygun bir pin secip, bu pindeki voltaji okuyan, eger voltaj 0...1v araliginda ise yesil ledi yakan, voltaj 1..2v araliginda ise kirmizi ledi yakan eger voltaj 2 v dan yuksekse mavi leden yakan programi yazin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Soru 7

https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Yukaridaki linkte wav dosya formati verilmistir. Herhangi bir wav dosyasinin byte cinsinden sayisal degerlerini STM32F Discovery kitimize ait programimizin char wav[] tanimli arrayi icine elle kopyaladigimizi varsayin.

Yazacaginiz program, wav dosyanin header bilgilerinden yararlanarak donanim icin gerekli ayarlamalari yapsin ve DAC'in PA5 cikis pininden ses olarak ciksin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

30 Aralık 2011, 04:24:22 #8 Son düzenlenme: 30 Aralık 2011, 04:35:05 bunalmis
Soru 8


Kart üzerindeki mikrofondan algılayacagınız sesi işleyerek echo yapıp DAC2 den çıkın.

Ses ses ses es es s s s
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Soru 9


Dilimizdeki b, r,  k, ç, d,  t, ş, l, y, s, z, i, ü, ö, o, e, a, ı seslerini digitalleştirip C programınıza gömün.

Daha sonrada 1, 2, 3, 4, 5, 6, 7, 8, 9 rakamlarını DAC2 den sesli olarak çıkartın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Soru 10

Dokuzuncu soruyu çözdükten sonra bu programa yama yaparak PCde hiper terminalden

Baud Rate 1200
8 Data bit
1 Stop bit
No parity

parametreleri ile göndereceğiniz rakamları sesli olarak söyletin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Soru 11

Kartınızdaki mikrofondan aldığınız kısa bir konuşmayı kart üzerinde koşturacağınız yazılımla wav formatına çevirip PC ye

Baud Rate 4800
8 Data bit
1 Stop bit
No parity

parametreleri ile aktarıp bir dosyaya yazdırın ve PC deki wav player programınız ile bu dosyayı konuşturun.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Soru 12

27.xxx Mhz de çalışan ucuz oyuncak arabalardan temin edin.

Kartınızın bir pininden 27 Mhz kare dalga çıkartarak bu sinyalle 27 Mhz'e akortlu rezonans devresini  RF transistör üzerinden sürün.

Yazacağınız bir programla arabaya ileri geri sağ sol hareketler yaptırın. (Kesinlikle arabanın vericisi kullanılmayacak)

Yol gösterme: Arabanın kendi vericisine baglantı yapıp öncelikle gönderilen verilerin formatını çözün ve kartaki programınızda buna ilişkin algoritmayı kurun.

Gerekiyorsa alıcının rezonans devresini 27Mhz e ayarlayın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Soru 13

Hem PC hem de kart için 16 Kanallı lojik analizör programı yazın.

Sample alma frekansı PC den bildirilsin. Kart, porttan okuyacağı verileri DMA ile rama taşısın. DMA de Timer ile senkronlansın.

Haberleşme bu aşamada seri port üzerinden yapılacaktır.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.