Konular
Teknik
İsmail Sahillioğlu
ismailsahillioglu@gmail.com
Mersin'de doğdum. Sekiz yıllık temel eğitim ve beş yıllık mesleki eğitimden sonra elektrik - elektronik sektöründe iş hayatına başladım. Etkin olarak gömülü sistemler ve sistem geliştiriciliği, ayrıca bu gömülü sistemlerle birlikte çalışabilecek mobil uygulama geliştiriciliği ile uğraşmaktayım.
Eğer bu makaleyi buldunuz ve okuyorsanız yüksek ihtimalle siz de aynı
sorundan müzdaripsiniz. C ile bir alıştırma veya uygulama yapıyorsunuz,
klavyeden birkaç kez karakter veya string okumanız gerekiyor, aa, bir
bakıyorsunuz ki arada bazı girişleri okuyamamışsınız, değişkenlerinizde
yalnızca istenmeyen bir
(carriage return - satır başı) karakteri var. Ne olacak şimdi?
Mobil uygulamalar geliştirirken bazı durumlarda kullanıcıya değişen
düzey değerlerini uygulamamıza özel görseller kullanarak sunmamız
gerekebilir. Bu, bir sürecin ilerleme düzeyi, bir pilin doluluğu,
şebeke, wifi veya bluetooth gibi bir radyo sinyalinin gücü olabilir.
Elbette bunu yapmanın birden çok yöntemi olabilir. Fakat burada
gerçekleyeceğimiz yöntem Android ekosisteminin doğal gücünden
yararlandığı için...
Bir değerin bellekte temsil edilecek türünü değiştirmeye tür değiştirme
denir. Temsil edilecek dememden kasıt şudur ki; mikrodenetleyicilerde
veriler yalnızca ikilik (binary) olarak işlenebildiğinden, yazılım
kodlarken kullanılan sabit ya da değişken
değerlerin ikilik formatta nasıl organize edileceğinin belirlenmesi
gerekir.
İşleçler, kod yazarken aritmetik, mantıksal, karşılaştırma ve dile özel
bazı işlevleri gerçekleştirmeye yararlar. JAL 2. versiyonu itibariyle
aşağıdaki işleçleri desteklemektedir.
Rumuzlar (takma adlar) birden çok tanımlayıcının (değişkenler, adlandırılmış sabitler, alt programlar) aynı nesneye başvuru yapabilmesine izin verirler. Bir rumuz aşağıdaki biçimde tanımlanır:
ALIAS rumuz_tanimlayici IS gercek_tanimlayici
Çoğu zaman bir değişken ya da sabite birden çok ad ile başvuru yapılabilmesi yararlıdır. Kod yazarken bazı başvurular için rumuzların kullanılması kodlamayı yapan kişi açısından daha akılda kalıcı olur.
Bluetooth Açma, Kapatma, Durum Bilgisi Alma
1- Bluetooth donanımını etkinleştirme
2- Bluetooth donanımını etkisizleştirme
Bluetooth programlamanın giriş yazısında kısa bir önbilgi vermiştik. Birinci bölüm olan bu bölümde bluetooth uygulama projemizi oluşturup ilk işlemleri gerçekleyeceğiz.
İlk işlemlerimiz:
2- Bluetooth donanımını etkisizleştirme
3- Bluetooth donanımının durumunu BroadcastReceiver kullanarak alma olacaktır.
Herkese merhaba, sayısını bilmediğim Java ile Android Bluetooth Programlama eğitim serisine başladım. Eğitim sayısının ucunu açık bıraktım ki; Android aygıtlarda bluetooth ile eğlenebildiğimiz kadar eğlenip konunun derinliklerine inelim. Bu seri basit bluetooth kontrol işlemlerinden başlayıp orta seviye bir bluetooth uygulamasına kadar gidebilir.
Merhabalar! İnternette karşılaştığım bir soru üzerine gerçeklediğim bir devreyi paylaşmak istiyorum. Soru şöyleydi:
"Butona
1 sefer bastığımda ne kadar basılı olursa olsun ilk bastığım
andan itibaren 1 saniye çıkış verecek. Ne zaman elimi çekersem tekrar 1
saniye çıkış verecek bir devre (mikrodenetleyici istenmiyor)..
Adlandırılmamış bir nümerik sabit, 32-bit işaretli değer olan bir UNIVERSAL türdedir. Bu sabit değerler genelde önişlemlerde (preprocessing) veya değişkenlere atamalarda kullanılan değerlerdir. Bir işlemde UNIVERSAL türü bir sabit değer kullanıldığında, bu tür, diğer operandın türüne çevrilir. Örneğin WORD türünde bir değişken ya da sabit operanda 12739 UNIVERSAL türdeki değer atanırsa, bu UNIVERSAL tür normalde işaretli 32 bit olmasına rağmen WORD türüne çevrilir...
Basitçe bir değişken, değer tutan bir tanımlayıcıdır. Bu tanımlayıcılar,
değeri tutmak için ne kadar boşluk gerektiğini belirleyen ilgili
türlere sahiptir. Bu veri türleri hakkında bu yazıda söz etmiştik. Bir değişken tanımlayıcı için belirtilen veri türü bu değişken için bellekte ne kadar yer ayrılacağını belirler. JAL'ın kendi kılavuzunda tam değişken tanımlama formatı aşağıdaki gibidir:...
Kayıtlar (Records); diziler, değişkenler, ve kayıtlar
da dahil olmak üzere diğer yerleşik türleri de içinde barındırabilen ve
bu farklı veri alanlarını bir paket haline getiren özel türlerdir. JAL
dilinin bu özel türü C dilinde yine özel bir tür olan 'struct' ile
benzerlik gösterir.
...
Bir kayıt oluşturulduktan sonra, basit bir türün kullanıldığı herhangi
bir yerde kullanılabilir. Kaydın dahili alanlarına '.' işleci kullanarak
erişilir.
JAL tek boyutlu değişken dizileri oluşturabilir ve bunları organize edebilir. Bit türü dizi oluşturmak için kullanılamaz, donanım yapısına uygun değildir. Bit dışındaki türlerin herhangi biriyle değişken dizileri oluşturulabilir. Dizi tanımlama biçimi aşağıdaki gibidir:
VAR "değişken türü" "değişken adı" ["dizi niceliği"] = {"dizi öğeleri"} ...
JAL v2 derleyicisi yalnızca aşağıdaki türleri tanır...
...
En büyük türler, WORD, SWORD, DWORD, SDWORD genişlik belirticisini kullanarak basitçe temel türlerden türetilmiştir. Örneğin WORD, BYTE*2’ye eşittir, sonuncusu yani BYTE*2, biçimlendirici ile diğerinin alternatifi olarak kullanılabilir...Değişkenler programlama dillerinin vazgeçilmez ögelerindendir. Değişkenler program yazarken, bellek konumlarının adres sayılarını kullanmak yerine benzersiz bir adla ilişkilendirip bu konumlar üzerinde veri organizasyonu yapmamızı sağlar. Biz insanlar için adlarla çalışmak sayılarla çalışmaktan daha kolaydır.
JAL "Just Another Language" sözcüklerinin kısaltılmışıdır. Türkçeye, "Yalnızca Başka Bir Dil" olarak çevrilebilir. Microchip firmasının 8-bit PIC mikordenetleyicileri için geliştirilen açık kaynaklı, yüksek-düzeyli ve ücretsiz bir programlama dilidir.
PIC denetleyicilerde; her biri 8-bit genişliğinde olan, Special Function Registers/Özel İşlev Yazmaçları ve General Purpose Registers/Genel Amaçlı Yazmaçların bulunduğu veri bellekleri haritalandırılmış bir yapıya sahiptir. Bu bellek haritası modelden modele değiştiğinden dolayı burada yalnızca PIC16F628A modelinin veri belleği yapısından ve bu bellekte verinin nasıl işlenebileceği ve yönetilebileceğinden söz edeceğim.
Bu program başlangıç düzeyinde olanların Assembler'da tuşların nasıl
taranıp, girilen değerin nasıl 7-Parçalı bir LED göstergede
gösterilebileceğini kavrayabilmesi için yapılmştır.
Kontrol devresi şekilde de görüldüğü gibi bir sıfırlama(RESET) girişi, 2
motorun denetimini yapan 1-başlat, 1-durdur buton girişi, Aşırı Akım
Rölesinden gelen 2 sinyal bilgisi girişi, 2 hata düzeltildi onay butonu
girişi, 2 adet Motor1 ve Motor2 çıkışı, 2 hata göstergesi çıkışı ve
sayaç devresini süren 3 uçtan oluşmaktadır. 6-harici giriş, 4-harici
çıkış ve 3-dahili çıkış olmak üzere toplam 13 adet giriş-çıkış ucu
kullanılmıştır.
PIC18 serisinde Assembly ile programlama yaparken özellikle BANK
blokları ve yazılımda nasıl yönetilmesi gerektiği konusunda
afallayacaklardır. Ancak düşünülenin aksine PIC18 serisinde bank
yönetimine gerek yoktur, eğer RAM de çok büyük miktarlarda veri
saklanması gerekmiyorsa BANK sistemini kullanmaya hiç gerek yoktur.
Çok Tıklananlar