Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama

Benzer bir sunumlar


... konulu sunumlar: "ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama"— Sunum transkripti:

1 ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
TUNA AYAN

2 BAŞLAMADAN ÖNCE GPIO(Çevresel Aygıtlar) StellarisWare İle Programlama
Interrupt OLED Ekran Debug İşlemi

3 Genel amaçlı giriş ve çıkış pinlerine GPIO denir.
GPIO (Çevresel Aygıtlar) GPIO Nedir? Genel amaçlı giriş ve çıkış pinlerine GPIO denir. Bu pinler programcı tarafından kontrol edilebilir, programlanabilir ve yönlendirilebilir. LM3S811 üzerinde GPIO pinleri 5 adet port altında toplanmıştır.

4 Giriş yada çıkış olarak tanımlanabilirler.
GPIO (ÇEVRESEL AYGITLAR) Özellikleri: GPIO Modülü, her portta 8 adet pin kullanımına olanak sağlar. Bu pinlerin genel özellikleri; Giriş yada çıkış olarak tanımlanabilirler. Opsiyonel olarak pull-up, pull-down seçenekleri ile kullanılabilirler. Çevresel aygıt pini olarak kullanılabilirler. Her pinin birden fazla görevi vardır. Bu görevler arasında seçim yapılmasına olanak sağlar.

5 GPIO Modülüne Ait Fonksiyonel Tanımlamalar: Data Kontrolü
GPIO (ÇEVRESEL AYGITLAR) GPIO Modülüne Ait Fonksiyonel Tanımlamalar: Data Kontrolü Interrupt Kontrolü Mod Kontrolü Pad Kontrolü

6 Pin için giriş çıkış ayarları bu kısımda gerçekleştirilir.
GPIO (ÇEVRESEL AYGITLAR) Data Kontrolü: Pin için giriş çıkış ayarları bu kısımda gerçekleştirilir. Stellaris üzerindeki GPIODIR register’ı ile gerçekleşir. Gerekli pini giriş olarak tanımlamak için ‘0’ değeri, çıkış olarak tanımlamak için ‘1’ değeri yazılır.

7 GPIO pinlerinin interrupt özelliğinin açılıp kapanmasını sağlar.
GPIO (ÇEVRESEL AYGITLAR) Interrupt Kontrolü: GPIO pinlerinin interrupt özelliğinin açılıp kapanmasını sağlar. Hangi durumlarda interrupt geleceğinin belirlenmesini sağlar. Mod Kontrolü: GPIO pininin hangi işlevini kullanacağımızı belirler.

8 Pad ayarlamaları için kullanılır.
GPIO (ÇEVRESEL AYGITLAR) Pad Kontrolü: Pad ayarlamaları için kullanılır. Donanımsal olarak kullanım değişikliklerinde tercih edilir. Opsiyonel olarak open-drain seçimi yapılmasına olanak sağlar.

9 Varsa özel ayarlar yapılır.
STELLARİSWARE İLE PROGRAMLAMA Algoritma: Cihaz üzerinde kullanacağımız port aktif hale getirilir. SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOX); Port üzerinde kullanacağımız pin seçilir ve özellikleri ayarlanır. GPIOPinTypeGPIOOutput(GPIO_PORTX_BASE,GPIO_PIN_5 | GPIO_PIN_6); Varsa özel ayarlar yapılır. Yapmak istediğimiz işlemler gerçekleştirilir. GPIOPinWrite(GPIO_PORTX_BASE,GPIO_PIN_Y,!GPIO_PIN_Y); Uygulama

10 INTERRUPT Interrupt Nedir? Bir uygulamanın, daha önemli bir uygulamanın gerçekleşmesi için kesilmesi işlemidir. Interrupt bağlandığı yerdeki spesifik hareketlere göre ayarlanabilir, kontrol edilebilir, kendi içerisinde de önem sırasına göre kullanılabilir. ARM tabanlı MCU’lar üzerinde NVIC (Nested Vectored Interrupt Controller) bulunur.

11 Stellaris üzerinde 26 adet NVIC interrupt kullanılabilir.
NVIC Nedir? Stellaris üzerinde 26 adet NVIC interrupt kullanılabilir. 0-7 arasında öncelik sırasına göre interrupt’lar kendi aralarında da sıralanabilir.(önceliği en büyük olan 0) GPIO pinlerine bağlanabilir. Maskelenebilir, Maskelenemeyen harici NMI interrupt’ı vardır. Vektörel olarak tanımlanır, kolay kullanım avantajı sağlar.

12 NVIC Nasıl Kullanılır:
INTERRUPT NVIC Nasıl Kullanılır: Proje içerisindeki startup.s dosyası içerisinden kolaylıkla kullanılabilir. Vektörel olarak isimlendirilmiş alanda interrupt olduktan sonra dallanılacak fonksiyon adresini belirtilir. Fonksiyon adresi tanımlanır.

13 Genel interrupt açılır. IntEnable(INT_GPIOX);
STELLARİSWARE İLE PROGRAMLAMA Algoritma: İnterrupt özellikleri ayarlanır.(örn. Düşen kenar) GPIOIntTypeSet(GPIO_PORTX_BASE, GPIO_PIN_Y, GPIO_FALLING_EDGE); Pin üzerindeki interrupt yakalama aktif hale getirilir. GPIOPinIntEnable(GPIO_PORTX_BASE, GPIO_PIN_Y); Genel interrupt açılır. IntEnable(INT_GPIOX); Interrupt fonksiyonu içerisinde Interrupt bayrağı temizlenir. GPIOPinIntClear(GPIO_PORTX_BASE, GPIO_PIN_Y);

14 Organic Light Emitting Device açılımına sahiptir.
OLED EKRAN OLED Ekran Nedir? OLED ekran LCD ekran teknolojisine rakip olarak çıkmıştır. Işık yayan diyot(LED) familyasının son türüdür. Organic Light Emitting Device açılımına sahiptir. Düşük güçte çalışmalarından dolayı genellikle mobil uygulamalarda kullanılırlar.

15 Stellaris OLED Ekran ÖZellikleri:
Üzerinde SSD0303 sürücü bulunmaktadır. Bu sürücü sayesinde fonksiyonlar yardımıyla kolayca yazı ve resim ekleyebiliyoruz. Monochrome(tek renk) ekranı vardır. 96x16 Çözünürlük destekliyor.

16 Resim gösterimi matris tanımlanarak yapılabilmektedir.
OLED EKRAN Resim Ekleme: Resim gösterimi matris tanımlanarak yapılabilmektedir. Stellaris üzerindeki OLED ekran ile resim gösterimi matris dolumu ile gerçekleşir.

17 Hızı ayarlanır. Display96x16x1Init(true);
OLED EKRAN Algoritma: Hızı ayarlanır. Display96x16x1Init(true); String yazılır. Display96x16x1StringDraw("Merhaba", 0, 0);

18 DEBUG Debug Nedir? Türkçesi hata ayıklama olan bu yöntem programcıya kodunu adım adım inceleme imkanı sunar. Adım adım kod çalıştırmanın yanında anlık değişkenlerimizin değerini de okumak mümkündür. Başlarda simülasyon düzeyinde olan bu işlemler artık gömülü sistemlerde cihazın üstünde debug yapma özelliği getirmiştir. Aynı zamanda zorunlu hale de gelmiştir.

19 Joint Test Action Group olarak açılabilir.
DEBUG JTAG Nedir? Joint Test Action Group olarak açılabilir. Bir debug çeşididir. İşlemciler üzerindeki alt blokları kontrol eder. Gömülü sistemlerde adım adım çalışmayı sağlar. 1990 yılında test mekanizması olarak çıkmıştır.

20 DEBUG JTAG Elemanları:

21 DEBUG JTAG Nasıl Çalışır?

22 In Circuit Debugger Interface olarak açılabilir.
ICDI In Circuit Debugger Interface olarak açılabilir. Stellaris LM3S811 üzerinde bilgisayar ile arasındaki debugger ICDI tipi debugger dır. Bilgisayar ve stellaris arasında debug ara yüzünü kolayca oluşturur.


"ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama" indir ppt

Benzer bir sunumlar


Google Reklamları