Bedava ARM ve gömülü sistem kursu : teori + pratik deneyli, her ilde

Başlatan picusta, 01 Aralık 2013, 21:46:05

yilmaz_kk

  Arkadaşlar 7. bölümün de labını bitirdim. lakin switch kullanımı hakkında hala soru işaretlerimi çözemedim. Problemi başka türlü çözdüm.

Sormak istediğim switchleri nasıl kontrol ediyoruz? Main içerisine yazdığım switchleri kontrol etme konusunda başarılı olamadım. Kendi kodunda

(SW1 == 0x10)
(SW2 == 0x01)

yazmış ve koşulları test etmiş.
Ben de buna istinaden aşağıdaki kod parçacığını yazdım. SW1,2' yi negatif logic ile kontrol edemedim. Bu kısmı anlatabilecek arkadaşlardan yardım bekliyorum. Lütfen ilgili bölümde yazıyor gibi şeyler söylemeyin.  Teşekkür ederim.

while(1){
      SW1 = GPIO_PORTF_DATA_R&0x10; // PF4 into SW1
      SW2 = GPIO_PORTF_DATA_R&0x01; // PF0 into SW2
   //   if ( (SW1 == ~0x10) && (SW2 == ~0x01) ){
         //      if ( (~SW1) && (~SW2) ){
      FlashSOS();
      }      
  }

atillaa

@yilmaz_kk
while içinde butonları okumuşsun daha sonra bu butonların basılıp basılmadığını kontrol ediceksin. Butonlar pull-up olduğu için eğer basıldıysa 0 a çekecektir.
if(SW2 == 0x00 && SW1 == 0x00)
FlashSOS();
bu kod işini görecektir.  :)

MrDarK

Kursu ingilizce anlamayanlar ; Niyazi bey ve ekibi türkçe alt yazılarda baya ilerlemiş. Tavsiye ederim ;

Link : http://www.mcu-turkey.com/gomulu-sistem-ders-serisi/
Picproje Eğitim Gönüllüleri ~ MrDarK

yilmaz_kk

Alıntı yapılan: atillaa - 25 Şubat 2014, 15:24:52
@yilmaz_kk
while içinde butonları okumuşsun daha sonra bu butonların basılıp basılmadığını kontrol ediceksin. Butonlar pull-up olduğu için eğer basıldıysa 0 a çekecektir.
if(SW2 == 0x00 && SW1 == 0x00)
FlashSOS();
bu kod işini görecektir.  :)

  Atilla teşekkür ederim cevabın için. Tam tersinin de doğru olması gerekmez mi?
         if ( (SW1 == ~0x10) && (SW2 == ~0x01) ){    veya
        if ( (~SW1) && (~SW2) ){

şeklinde de yapılabilmesi gerekmiyor mu? Burada "SW1 == ~0x10" eşitliğini sınarken PF4 harici bitlerin "1" olması sonucu değiştirir mi? Diğer pinler çıkış olarak atanmıştı. Bu kısmı açıklayabilirsen çok sevinirim .

İyi çalışmalar...

pea

Alıntı yapılan: yilmaz_kk - 26 Şubat 2014, 20:23:04
Burada "SW1 == ~0x10" eşitliğini sınarken PF4 harici bitlerin "1" olması sonucu değiştirir mi?
SW1 = GPIO_PORTF_DATA_R&0x10; // PF4 into SW1
Bu atamayı yapınca sadece PF4 bit'i önem taşıyor. Gerisi zaten 0 oluyor.
Yani diğer bitlerin "1" olması sonucu değiştirmez.

6.3'deki Bit-Specific Addressing bölümüne de göz atmanızı tavsiye ederim. İşleri daha da kolaylaştırıyor. (Tabi amaç C öğrenmek değil de TI'ın bu işlemcisini öğrenmekse)

MC_Skywalker

Ben Lab7 de delay sıkıntısı yaşıyorum.  First "S" delay to small  hatası alıyordum orjinal delay kodu ile değiştim busefer similasyon zamanında tamamlanamadı hatası almaya başladım. tırmalayıp duruyorum.

Kesin çözüm gözümün önünde ama saklanıyor :D

Düzeltme:

Bu hatayı aldığımda offisteki PC( Core2 Duo Win7 64bit) de çalışıyordum. Ofisteki PC de Keil 5.0 yüklü ve kurs için yayınlana TExaS_Patch yüklü değil. şimdi evde denediğimde sorun olmadan Grade oldu.

ilgili patch dosyası http://edx-org-utaustinx.s3.amazonaws.com/UT601x/TExaS_Patch.exe

Alıntı Yap
February 19, 2014

TExaS versions downloaded prior to 2/19/2014 did not properly simulate bit-specific addressing to I/O Ports A-F. So, if you installed TExaS prior to 2/19/2014 5pm Central Time, please download and install this patch. You will need to first install Keil before installing this update for TExaS. This installation only updates the DLLs in the to Keil\ARM\BIN folder, however, it is good practice to backup any Keil projects you have edited prior to installation.

1) Download the TExaS patch saving the 11.5M file on your computer.

2) Execute the TExaS_Patch.exe file to update all the DLLs.

okylmz

merhabalar  arkadaşlar
sorum PLL bitlerinden USESYSDIV biti ile ilgili (RCC kaydedicisinin 22. biti)
bu soruyu piazza da sordum ama cevabını henüz alamadım.

chapter 10.1 e göre verilen şekilde en son katta görülen USESYSDIV biti 1 yapılmalı ki işlemci PLL ile ayarlanan frekansta(örneğin 80MHZ) çalışsın, eğer 0 olursa gelen 400MHz veya diğer frekans hiç bölünmeden işlemciye verilecek.


Acak PLL_Init() fonksiyonunda bu bite hiç dokunulmuyor, ve reset değeri 0 olduğu için 0 olarak kalıyor.

PLL_Init() fonksiyonu çalışıyor ama; o zaman bu bit ile ilgile verilen bilgiler eksik veya yanlış(kanımca)

ayrıca TM4C123GH6PM.pdf  te sayfa:230 da bu bitin 1 yapılması gerektiğini söylüyor.



ayrıca şöyle birşey de var bazı durumlarda RCC2 kaydedicisine yazılanlar RCC ye geçer, ama bu 22. bit için geçerli değil(araştırdığm kadarıyla)

yorumlarınız bekliyorum.
kolay gelsin.

mir_as82

arkadaşlar bu kursu tamamlayınca parasız sertifika alabilecek miyiz?

pea

Alıntı yapılan: mir_as82 - 06 Mart 2014, 13:21:24
arkadaşlar bu kursu tamamlayınca parasız sertifika alabilecek miyiz?
Neden para veremediğinize ve ücretsiz Honor Code Certificate almak istediğinize dair birkaç satır bir şey yazıyorsunuz. Kabul edilirse üzerinde fotoğrafınızın olmadığı bir sertifika alıyorsunuz.
Ancak kabul edildi mi, edilmedi mi bir bildirim gelmedi bana. Ne olacak bilmiyorum.

mir_as82

Aynisini bende yaptim bana da gelmedi cevap, bunun için sordum.

muhittin_kaplan

6 bölümün quizindeki ilk sorunun
DEN registerine ne yazdınız ?

mesaj birleştirme:: 08 Mart 2014, 12:32:35

FF i felan kabul etmiyormuş sadece 1 yazdım :)

mesaj birleştirme:: 08 Mart 2014, 12:46:28

6 nın uygulaması çalışmadı, (ICD felan seçili) ama blink yapmıyor namıssız.

MC_Skywalker

Bir patch yayınlandı onu kurdun mu?   birde similasyondaki çıktı penceresinde yazan hatamesajlarını paylaşırsan fikir verebilirim.

= &(~0x04); 
Delay100ms(1); 
= |0x04; 
Delay100ms(1);

muhittin_kaplan

Sim e gecmedim branc falan filan dosyasini (lab6) actim derledim yukledim ama ne mavi led ne de buton calisiyor.

pea

Lab uygulamalarını ilk açtığınızda çalışmayan bir kod oluyor zaten. Üzerine eklemeler, düzeltmeler yaparak çalıştırıyoruz.
Ya da sizi yanlış anladım :)

muhittin_kaplan

Videoda derleyip yukledi

mesaj birleştirme:: 08 Mart 2014, 14:14:20

Alıntı yapılan: MC_Skywalker - 08 Mart 2014, 13:06:39
Bir patch yayınlandı onu kurdun mu?   birde similasyondaki çıktı penceresinde yazan hatamesajlarını paylaşırsan fikir verebilirim.

= &(~0x04); 
Delay100ms(1); 
= |0x04; 
Delay100ms(1);


Hocam Nerde Bu Peç

mesaj birleştirme:: 08 Mart 2014, 14:34:17

verilen lab6 nın programında intr. açıyor, ben nedense debug yaptığımda TExaS_Init step into yapamıyorum