Hoşgeldin Misafir
Mesaj atabilmek için forumumuza kayıt olmalısınız.

Kullanıcı Adı
  

Şifre
  





Forumlarda Ara

(Gelişmiş Arama)

Forum İstatistikleri
» Üye Sayısı: 149
» En Son Üyemiz: narkotik
» Konu Sayısı: 31
» Mesaj Sayısı: 72

Tam İstatistik

Çevrimiçi Kullanıcılar
Şu anda 7 çevrimiçi kullanıcı var.
» 1 üye | 6 Misafir
vampisee

En Son Konular
Lazreport pdf çıktısında ...
Forum: Raporlama
Son Mesaj: admin
10-11-2017, 07:57 AM
» Cevaplar: 8
» Gösterim: 1,979
sdposerial component kuru...
Forum: Genel
Son Mesaj: run
10-01-2017, 07:42 AM
» Cevaplar: 2
» Gösterim: 1,350
Jalv2 - Dizi Tanımlamalar...
Forum: JalV2
Son Mesaj: SercanTEK
09-29-2017, 10:27 AM
» Cevaplar: 0
» Gösterim: 1,194
Jalv2 - Sabitler
Forum: JalV2
Son Mesaj: SercanTEK
09-29-2017, 10:24 AM
» Cevaplar: 0
» Gösterim: 359
Jalv2 - Değerlerin Göster...
Forum: JalV2
Son Mesaj: SercanTEK
09-28-2017, 06:17 PM
» Cevaplar: 0
» Gösterim: 194
Elera İşletim Sistemi (el...
Forum: İşletim Sistemi
Son Mesaj: SercanTEK
09-27-2017, 09:27 PM
» Cevaplar: 1
» Gösterim: 1,345
F1 Led Stop Çakar Devresi...
Forum: Örnek Uygulamalar
Son Mesaj: SercanTEK
09-27-2017, 09:24 PM
» Cevaplar: 0
» Gösterim: 723
Jalv2 - Değişkenler
Forum: JalV2
Son Mesaj: admin
09-27-2017, 08:53 PM
» Cevaplar: 1
» Gösterim: 265
Zeoslib Kurulumu
Forum: Zeoslib
Son Mesaj: admin
09-25-2017, 07:53 AM
» Cevaplar: 0
» Gösterim: 137
Temel Sorgular
Forum: Veritabanı
Son Mesaj: admin
09-25-2017, 07:51 AM
» Cevaplar: 1
» Gösterim: 1,001

 
  Jalv2 - Dizi Tanımlamaları
Gönderen: SercanTEK - 09-29-2017, 10:27 AM - Forum: JalV2 - Cevap Yok

Dizi Tanımlamaları

Dizi tanımlamaları tek türde birçok elemanı bünyesine alabilen tanımlamalardır. Tanımlama esnasında dizinin sayısı belli ise bu dizelere statik diziler, dizi sayısı belli değil ise bu dizilere ise dinamik dizeler denir. Diziler hem değişken diziler hem de sabit diziler olarak tanımlanabilir. Dizilerin ilk Elemanları daima 0(sıfır)’dan başlamaktadır.

Değişken Diziler

Var byte dizi[3] = {245,123,253} > statik dizi Yukarıdaki örnekte dizi elemanları “değişken” olan statik bir dizi tanımlaması yapılmıştır. Burada dizi[0] = 245 , dizi[1] = 123 , dizi[2] = 253 olmaktadır. Aynı dizi dinamik olarak tanımlanmış olsaydı o zaman şu şekilde yazılması gerekmektedir.

Var byte dizi[] = {245,123,253} > dinamik dizi
Var byte dizi[] = {“S”,2,1,”V”} > dinamik dizi

Sabit Diziler

Const byte mesaj[] = “SsEeRrCcAaNn” > dinamik dizi

Yukarıdaki örnekte dizi elemanları “sabit” olan dinamik bir dizi tanımlanmıştır. Burada diziye yüklenen ASCI değer sayısı kadar bir dizi oluşmaktadır. Aynı Diziyi birde statik olarak tanımlarsak aşağıdaki gibi yazılması gerekmektedir. 

Const byte mesaj[12] = “SsEeRrCcAaNn” > statik dizi

Dizi Tanımlamalarında; eğer dizi değişken olarak tanımlandı ise o zaman dizi elemanları sonradan değiştirilebilir ama sabit olarak tanımlandı ise daha sonra bir değişiklik yapılamaz. Ayrıca şuan için bit tipinde dizi tanımlaması yapılmamaktadır.

Bu öğeyi yazdır

  Jalv2 - Sabitler
Gönderen: SercanTEK - 09-29-2017, 10:24 AM - Forum: JalV2 - Cevap Yok

Sabitler

Sabitler Program Çalışırken Sadece Okunabilen Hafıza alanları Olarak Nitelendirilebilirler. Değişkenlerden Farklı olarak Tanımlandıkları esnada içerisine değer aktarılır ve bu değer sadece okunabilir. Değişiklik Yapılamaz. 

Jalv2 Dilinde Sabit Tanımlama Formatı Aşağıdaki Gibidir: 

Const <Sabitin Tipi> <sabitin adı> = <aktarılacak değer>

Örnek: 

Const bit  led = 0 > bit Tipinde Sabit 
Const byte deg = 100 > byte Tipinde Sabit 
Const sbyte ges = -100 > sbyte Tipinde Sabit 
Const word dk = 5000 > word Tipinde Sabit 
Const sword sn = -5000 > sword Tipinde Sabit 
Const dword snn = 4000000000 > dword Tipinde Sabit 
Const sdword san = -1147483648 > sdword Tipinde Sabit

Bu tanımlamaların yanında sabitlerde ekstradan üniversal tip tanımlamada mevcuttur. Genellikle PIC ’in çalışma frekansı gibi tanımlamalarda kullanılırlar. Herhangi bir tipleri bulunmamaktadır. Derleyici sadece derleme esnasında bu üniversal tipi kullanır ve derlendikten sonra ulaşma imkânı yoktur.

Örnek: Const devir = 600 > Üniversal Tip Sabit Tanımlaması

Bu öğeyi yazdır

  Jalv2 - Değerlerin Gösterim Şekilleri
Gönderen: SercanTEK - 09-28-2017, 06:17 PM - Forum: JalV2 - Cevap Yok

Bu yazımızda jalv2 derleyicisini kullanırken tanımlanan değişken ve sabitlere atanan değerlerin gösterim şekillerini inceleyeceğiz.

Decimal Sayı Gösterimi 

Onluk sayı sistemidir.Başında veya sonunda herhangi ek bir işaret olmaksızın sadece sayının yazılması şeklindeki gösterim şeklidir. 

Örnek: var byte ornekdec = 65 > Burada ornekdec isimli değişkene Decimal 65 sayısı atanmıştır.

Hexadecimal Sayı Gösterimi 

Onaltılık sayı sistemidir. Hexadecimal sayı gösteriminde sayının başına “0x” Koyulur.

Örnek: var byte ornekhex = 0x41 > Burada ornekhex isimli değişkene Hexadecimal 41 sayısı atanmıştır. (0x41 = 65)

Octal Sayı Gösterimi

Sekizlik sayı sistemidir. Octal sayı gösteriminde sayının başına “0q” Koyulur.

Örnek: var byte ornekoct = 0q12 > Burada ornekoct isimli değişkene Octal Tabanda 12 sayısı atanmıştır.

Binary Sayı Gösterimi 

İkili sayı sistemidir. Binary sayı gösteriminde sayının başına “0b” Koyulur. 

Örnek: var byte ornekbin = 0b01000001 > Burada ornekbin isimli değişkene binary 01000001 sayısı atanmıştır. (0b01000001 = 0x41 = 65) 

Not: Binary Sayı Gösteriminde aşağıdaki Formatta Kullanılabilir:

var byte ornekbin = 0b01000001

Yazılabileceği gibi aşağıdaki şekilde yazılabilir.

var byte ornekbin = 0b_0100_0001 

Burada aralara konan “_” işareti önemsizdir. Göz karışıklığını önlemek için konulmuştur.

ASCI Gösterim

ASCI rakam, harf ve bazı özel işaretlerden oluşan karakterlerin sayısal karşılıklarının standardına verilen isimdir. Bilgisayar ortamında tüm her şey sayılar ile saklanmaktadır. Örneğin ab = “A” tanımlaması yapıldığında ab değişkenine A ‘ nın ASCI karşılığı yüklenmektedir.

Örnek: var byte ab = “A” > Burada ab isimli değişkene A Harfinin ASCI Karşılığı Yüklenmiştir.

Bu öğeyi yazdır

  F1 Led Stop Çakar Devresi Yapımı (Jalv2)
Gönderen: SercanTEK - 09-27-2017, 09:24 PM - Forum: Örnek Uygulamalar - Cevap Yok

Son zamanlarda araçların arkasında ortada bulunan LED stop lambasına modül bağlandığını gördüm. Değişik efektler olsada başlangıçta yanıp sönen ve sabitlenen efekt gayet güzeldi. Arkanızdan gelen kişinin sizi dikkat etmesi için bence gerekli olan bir özellik olduğunu düşünüyorum.

Piyasada araştırdığımda hazır modüllerin 10TL – 30TL arasında satıldığı gördüm. Bazıları sadece yapıp sönen bazıları ise farklı efektler üretebilen modüllerdi.

Malzeme çantama baktığımda ihtiyacım olan malzemeleri görünce dayanamadım ve elimdeki imkanlar doğrultusunda modülü yaptım. Hazır almak ucuza gelsede birşeyleri kendi başınıza yapıp kullanmanız bence paha biçilemez. Yapmışken biraz fonksiyonel birşey olsun dedim ve ortaya 13 Modlu çakar devresi çıktı. Yapıp kullanan arkadaşlar farklı modları seçerek kullanabilir.

Öncelikle şunu belirtmek isterim. Bazı simsar arkadaşlar bu tarz basit projeleri yapıp kendi ürünleri gibi sattıyorlar. Bu yüzden kaynak kodun tamamını paylaşmayacağım. DEMO olarak bir hex vereceğim. Yapıp kullanırsanız devre her çalıştığında farklı efekt çalıştıracaktır. DEMO yazılımla kalıcı efekt seçemezsiniz. Buradaki amacımız nasıl yapıldığını anlatmak olduğu için sadece işinize yarayacak kaynak kodları vereceğim.

Eğer Full yazılımı kullanmak isteyen arkadaşlar olursa mail yolu ile bana ulaşabilirler.

Şimdi gelelim devremize,
Öncelikle elimde olan malzemeler ile yaptığımı söylemiştim. Bunlar 12F629, BDX53, LM7805, Direnç, LED, Kondansatördür. Yazılımı tahmin edebileceğiniz gibi Jalv2 ile geliştirdim. Ücretsiz ve basit işlerde favorim olması en büyük etken

[Resim: 12f629_bdx53_pin.png]

PIC12F629 8 pinli bir mikrodenetleyicidir. Seçim nedeni 8 pinli olması ve elimde bulunmasından ibarettir. Elinizde varsa farklı mikrodenetleyicilerde kullanabilirsiniz.

BDX53C NPN tipi güçlü bir darlington transistördür. Biz sadece LED süreceğimiz için bize gayet yeterlidir. Datasheetini incelerseniz Voltaj ve Akım değerlerini görebilirsiniz.

[Resim: modlu_cakar_devre.png]

Devre Şemamız yukarıda görüldüğü gibi basit ve çok malzeme gerektirmeyen yapıda. Toplamda bağlanacak 3 adet kablonuz olacaktır. Şemada 12F629 Vdd ve GND bağlantıları gözükmüyor. Devreyi yapmak isterseniz bunları göz önünde bulundurun.


Araçlar 12V olduğu için mikrodenetleyiciyi çalıştırmak adına LM7805 kullandım. giriş ve çıkışına 100nfkutupsuz kondansatör yerleştirdim. Bir tane buton kullanarak MOD seçimini sağladım. Butona her basıldığında bir sonraki moda geçer ve hafızasında kaydedip bir sonraki çalışmada hatırlamasını sağlayacak şekilde programladım. Hatta butona basıldığında işlemin uygulandığını göstermek için ledlere 2 kez göz kırptırdım. Animasyon listesini bitirip başa döndüğünüzde Altı kez göz kırptırdım. İlavetten 13. mod olan ve her bastığınızda farklı animasyon çıkan moda geldiğinizde 1 kez göz kırptırdım. Bu sayede butona basıldığındaki işlemleriniz görsel hale geldi. Son olarak çıkışa bağladığım LED sayesinde devre üzerindeki animasyonlar direkt gözükmektedir. Enerji verip ayar yapmak isterseniz bu LED ile görsel doğrulama yapabilirsiniz.


Elimdeki imkanlar doğrultusunda ben devreyi delikli karta yaptım. Zamanım olsaydı baskı devre çizip basacaktım ama bu şekilde kolayıma geldi desem yalan olmaz. İsteyen arkadaşlar bası devresini hazırlayabilir.

[Resim: devremiz-2.png]

[Resim: Devremiz.png]

Kabul ediyorum işçilik çok iyi olmadı ama devremiz çalışıyor.

Devreyi dış etmenlerden korumak ve yalıtım sağlamak için ısıya dayanıklı 20mm çapında daralan makaron kullandım.

[Resim: uygun-makaron.png]

[Resim: makaronlu-hali.png]

Isı sorunu olup olmayacağı soru işareti ile devreyi 1 saat full çalıştıdım. LM7805 ve diğerleri üzerinde ısı oluşmadı. Zaten araçta sadece frene bastığınızda devre enerjilenmektedir. Sürekli enerji altında çalışmayacaktır.

Yazılım tarafına baktığımızda daha öncede söylediğim gibi Jalv2 kullandım.



Kod:
-- ------------------------------------------------------
-- Modlu Stop Çakar Projesi (LED)
-- 23.07.2017 - Tekirdağ
-- Compiler : jal jalv24q6 (compiled Oct 25 2016)
-- Sercan TEK - www.sercanca.com
-- ------------------------------------------------------
include islemci_ayarlar

led = off                        -- Led Pini Kapalı

var byte mode                    -- hafızada kayıtlı animasyon değişkeni
var byte aktif_mod               -- oynatılacak animasyon
var bit temp_mode = false        -- Animasyon Değişim Bayrağı
var byte ikaz = 2                -- ikaz efekti için
var byte x                       -- animasyon temp değişken

const mode_adet = 13             -- Toplam Animasyon Adeti
const mod13_start = 12           -- mod13 başlangıç
-- ------------------------------------------------------
--  12f629 Dahili Eepromdan byte Okur
-- ------------------------------------------------------
function Data_oku(byte in hucre) return byte is
  EEADR = hucre
  EECON1_RD = TRUE
  return EEDATA
end function
-- ------------------------------------------------------
--  12f629 Dahili Eeproma Byte Yazar
-- ------------------------------------------------------
procedure Data_yaz(byte in hucre,byte in bilgi) is
  var bit temp
  EEADR = hucre
  EEDATA = bilgi
  EECON1_WREN = TRUE
  temp = INTCON_GIE
  INTCON_GIE = FALSE
  EECON2    = 0x55
  EECON2    = 0xAA
  EECON1_WR = TRUE
  INTCON_GIE = temp
  EECON1_WREN = FALSE
end procedure
-- ------------------------------------------------------
--  Mod butonu kontrol eder
-- ------------------------------------------------------
procedure buton_kontrol is
if buton == true then     -- butona basıldı ise
 led = off
  _usec_delay(1000_000)
 mode = ((mode % mode_adet) + 1)
 data_yaz(0,mode)
    if mode == 13 then   -- mode 13 seçilirse
     ikaz = 1            -- 1 kere yanıp söner ikaz verir
     aktif_mod = mod13_start
     data_yaz(1,aktif_mod)
    else
      aktif_mod = mode
    end if
   if mode == 1 then     -- mode 1 e geri döndü ise
     ikaz = 6            -- 6 kere yanıp söner ikaz verir
    end if
  for ikaz loop          -- normalde 2 kere yanıp söner ve ikaz verir.
   led = on   _usec_Delay(50_000)
   led = off  _usec_Delay(50_000)
  end loop
   if ikaz != 2 then
     ikaz = 2
   end if
 _usec_Delay(750_000)
 temp_mode = true
end if
end procedure
-- ------------------------------------------------------
-- Bekleme Alt Programı
-- ikinci parametre true verilirse Süre = deger x 1000ms
-- ikinci parametre false verilirse Süre = deger x 10us
-- ------------------------------------------------------
procedure bekle(word in deger,bit in ms) is
if deger > 0 then
 for deger loop
  if ms then
   _usec_delay(1000)
  else
   _usec_Delay(10)
  end if
  buton_kontrol
 end loop
end if
end procedure

-- ------------------------------------------------------
--  Animasyon Alt Programı, x1,x2,adet değişkenleri ile
--  Farklı animasyonlar elde edilebilir.
-- ------------------------------------------------------
procedure animasyon(word in x1,word in x2,byte in adet) is
 for adet loop

  if temp_mode then
   exit loop
  end if

  if x1 > 0 then led = on  bekle(x1,true) end if
  if x2 > 0 then led = off bekle(x2,true) end if
 
  buton_kontrol
 end loop
end procedure
-- ------------------------------------------------------
-- hSıradaki anmiasyonu oynatır
-- ------------------------------------------------------
procedure animasyon_oynat is
case aktif_mod of
-- ------------------------------------------------------
-- Mod 1
-- hızlı yanıp sönmeye başlar yavaşlar ve 20sn yanık kalır
-- ------------------------------------------------------
1 : block
   x = 0
     for 5 loop
       x = x + 15
       animasyon(x,x,2)
        if temp_mode then
         exit loop
        end if
      end loop
     animasyon(1000,0,20)
   end block
-- ------------------------------------------------------
--  Mod 2
--  Hızlı Hızlı Yanıp Söner
-- ------------------------------------------------------
2 : block
    animasyon(180,190,1)
   end block
-- ------------------------------------------------------
--  Mod 3
--  4 Kez Yanıp Söner ve 1 sn Yanık Kalıp Başa DÖner
-- ------------------------------------------------------
3 : block
    animasyon(100,100,4)
    animasyon(1000,0,1)
   end block
-- ------------------------------------------------------
--  Mod 4
--  3 Kez Yanıp Söner ve 1sn Sönük Kalıp Başa Döner
-- ------------------------------------------------------
4 : block
    animasyon(150,150,3)
    animasyon(0,1000,1)
   end block
-- ------------------------------------------------------
--  Mod 5
--  Düz yanar ve kısılarak söner
-- ------------------------------------------------------
5 : block
     for 255 using x loop
      led = on
      bekle(255-x,false)
      led = off
      bekle(x,false)
       if temp_mode then
         exit loop
       end if
     end loop
    bekle(100,true)
   end block
-- ------------------------------------------------------
-- Mod 6
-- Hızlanarak yanıp Söner
-- ------------------------------------------------------
6 : block
   x = 160
     for 8 loop
      x = x - 20
      animasyon(x,x,1)
        if temp_mode then
          exit loop
        end if
     end loop
    animasyon(0,500,1)
   end block
-- ------------------------------------------------------
--  Mod 7
--  5 kere yanıp söner ve 30 sn sabit yanar
-- ------------------------------------------------------
7 : block
    animasyon(120,120,5)
    animasyon(1000,0,30)
   end block
-- ------------------------------------------------------
-- Mod 8
-- 2 Farklı hızda yanıp söner
-- ------------------------------------------------------
8 : block
    for 2 loop
     animasyon(200,200,2)
     animasyon(50,50,2)
      if temp_mode then
        exit loop
      end if
    end loop
   end block
-- ------------------------------------------------------
-- Mod 9
-- 2 kez yanıp söner 2 kez söner
-- ------------------------------------------------------
9 : block
    animasyon(200,200,2)
    animasyon(0,200,2)
   end block
-- ------------------------------------------------------
-- Mod 10
-- 3 kez yanıp söner ve 5 sn sabit yanar
-- ------------------------------------------------------
10: block
    animasyon(100,100,3)
    animasyon(300,300,3)
    animasyon(500,500,3)
    animasyon(1000,0,5)
   end block
-- ------------------------------------------------------
-- Mod 11
-- 4 kez yanıp söner ve 6 sn sabit yanar
-- ------------------------------------------------------
11: block
    animasyon(130,130,4)
    animasyon(1000,0,6)
   end block
-- ------------------------------------------------------
--  Mod 12
--  Sürekli Yanık Kal
-- ------------------------------------------------------
12: block
    led = on
   end block

-- ------------------------------------------------------
--  Mod 13
--  her enerji verildiğinde sırasıyla tüm modları gezer
-- ------------------------------------------------------

end case

 if temp_mode then        -- mod değişimini algılar.
  temp_mode = false
 end if

end procedure

-- ------------------------------------------------------
-- mode 13 seçildi ise hepsini sırasıyla gezer
-- ------------------------------------------------------
mode = Data_oku(0)         -- Hafızadaki animasyon modunu oku
aktif_mod = Data_oku(1)    -- Hafızadaki animasyon sırası

if mode == 13 then         -- sıralı mod seçildi ise
if aktif_mod == 0 then    -- ilk oynatma
  data_yaz(1,mod13_start) -- aktif mod 11 olsun.
  aktif_mod = mod13_start
 else                     -- ilk oynatma değilse sıradakine geç
   aktif_mod = ((aktif_mod % 12) + 1)
   data_yaz(1,aktif_mod)  -- hafızaya yaz
 end if
else                       -- normal mod devam eder
aktif_mod = mode
end if

-- ------------------------------------------------------
--   Ana Döngü
-- ------------------------------------------------------
forever loop
buton_kontrol
animasyon_oynat
end loop

Gerekli gördüğüm açıklamaları Kodların yanlarına yazdım. Harici kütüphaneye bel bağlamamak adına bekleme ve eeprom okuma rutinlerini kendim yazdım. Kullanmak istediğiniz mikrodenetleyicinin lib dosyasını ekleyip kodu derleyebilirsiniz.


Animasyon Modları
Aslında toplamda 11 mod var 12. mod Düz yanıyor, 13. modta ise her frene bastığınızda farklı bir animasyonu yakıyor. Her animasyon frene basılı iken tekrar tekrar animasyonun başına dönüp tekrarlar.

1.Mod : Hızlıdan yavaşa doğru yanıp söner ve 20 sn sabit yanık kalıp başa döner.

2.Mod : Sürekli hızlı hızlı yanıp söner

3.Mod : 4 Kez yanıp söner, 1 sn yanık kalıp başa döner.

4.Mod : 3 Kez yanıp Söner, 1 sn sönük kalıp başa döner.

5.Mod : Düz Yanar ve kısılarak sönüp başa döner.

6.Mod : Hızlanarak yanıp söner başa döner.

7.Mod : 5 kere yanıp söner, 30sn yanık kalıp başa döner.

8.Mod : 2 farklı hızda yanıp söner başa döner.

9.Mod : 2 kez yanıp söner, 2 kez sönük kalıp başa döner.

10.Mod : Farklı hızlarda 3 kez yanıp söner, 5 sn yanık kalıp başa döner.

11.Mod : 4 kez yanıp söner, 6 sn yanık kalıp başa döner.

12.Mod : Devamlı yanık kalır.

13.Mod : Her defasında farklı animasyon oynatır.






Devrenin DEMO hex dosyasını buradan indirebilrisiniz : programv3_DEMO.hex

Not : PIC12F629 mikrodenetleyicisine bu Hex kodunu yüklemek için USB Brenner 8 gibi bir PIC programlayıcıya ihtiyacınız olacaktır. İlavetten Devre sadece LED kullanılmış stop lambaları içindir. Eğer Akkor flamanlı bir ampüle sahip stop lamlasında kullacaksanız öncelikle ilgili ampülü LEDversiyonu ile değiştirmeniz gereklidir.

Bu öğeyi yazdır

  Jalv2 - Değişkenler
Gönderen: SercanTEK - 09-27-2017, 08:44 PM - Forum: JalV2 - Cevaplar (1)

DEĞİŞKENLER

Değişkenler her programla dilinin vazgeçilmez unsurlarıdır. Program içerisinde tanımlanan değişkenler aslında birer hafıza alanından ibarettir. Yani program içerisinde değer yazıp okuyabileceğimiz ve belirlediğimiz değişken tipine göre hafızada alan kapsayan bölümlerdir. Değişkenlere defalarda yazılıp okunabilmektedir. Tanımlanan her değişken PIC entegrenin RAM bellek alanında yer kaplar. Bunun anlamı Elektrik Kesildiğinde değişkene yüklenmiş olan son değer silinmektedir. Bundan dolayı değişken tanımlandığında başlangıçta bir işlemde kullanılacak ise değişkene başlangıç değeri aktarılması doğrudur. Değişkenler var Deyimi ile Tanımlanır. Buradaki değişken türlerinin tamamını kullanabilmek için daima jal derleyicisinin son sürümünü kullanın.

Jalv2 Dilinde Toplam 7 adet değişken tipi vardır. Bunlar Aşağıdaki gibidir:

bit 1 bit değer alabilir 0..1 
byte 8 bit işaretsiz değer alabilir 0..255 
sbyte 8 bit işaretli değer alabilir -128..127 
word 16 bit işaretsiz değer alabilir 0..65,535 
sword 16 bit işaretli değer alabilir -32,768..32,767 
dword 32 bit işaretsiz değer alabilir 0..4,294,967,296 
sdword 32 bit işaretli değer alabilir - 2,147,483,648..2,147,483,647
float virgüllü değer alabilir - +/-10^-44..10^38

Yukarıda da Göründüğü gibi değişken tipleri bakımından Jalv2 Zengin bir dil. Ama Genelde programlarda sadece 3 tip değişken (bit, byte, word) kullanılır.

Jalv2’ de Değişken Tanımlama Biçimleri

Jalv2 Dilinde Değişken Tanımlarken Aşağıdaki Yazı Formatı Kullanılır: 

var  <degişken_tipi>  <değişken_adı>

Örnek: var bit deger > Burada deger adında bit tipinde değişken tanımlaması yapılmıştır.

Eğer değişkenimize Başlangıç Değeri Aktarmak İstiyor isek o zaman şu şekilde olmalıdır:

var  <degişken_tipi>  <değişken_adı> : <başlangıç_değeri>

Örnek: var byte deger = 250  > Byte Tipinde Tanımlanan değer adındaki değişkene başlangıç değeri olarak ‘250’ sayısı aktarılmıştır.

Değişken Tanımlama Örnekleri:

Bit
  Var bit deger
  Var bit deger = 1
Byte
  Var byte dd
  Var byte dd = 23 
sByte 
  Var sbyte deneme
  Var sbyte deneme = -100
Word
  Var word ornek
  Var word ornek = 11991
Sword 
  Var sword cok 
  Var sword cok = -11991
Dword 
  Var dword cokdeger 
  Var dword cokdeger = 4000000000 
Sdword 
  Var sdword cokcokdeger 
  Var sdword cokcokdeger = -1147483648
float
  Var float noktali_deger
  Var float noktali_deger = 1.23

Değişkenler araya ,(virgül) koyulmak şartı ile yan yana da tanımlanabilirler.

Örnek: var byte saat,masa,sandalye,lcd  > Burada saat,masa,sandalye,lcd isimli değişkenler byte tipinde tanımlanmıştır.

İstenilen Uzunlukta Değişken Tanımlama 

Jalv2 derleyicisi tanımlı olduğu değişkenler dışında özel olarak bit uzunluklarını kendimizin belirlediği tipte değişkenlerde tanınmasına izin vermektedir. Örneğin Word tipindeki değişken 16 bitliktir. Yani 2 adet Byte tipi değişkene eşittir. Değişken tanımlarken aşağıdaki şekilde bir tanımlama yaparsak istenilen bit sayısında değişken tanımlamış oluruz.

var <değişken_tipi>*<değişken_uzunlugu>  <değişken_adı>

Örnek olarak 24 bitlik bir değişken tanımlaması yapacak olursak şu şekilde olacaktır. 

Var byte*3 v_24_bit 

1 Byte 8 bit olduğuna göre tanımlanan değişken 8*3 = 24 bitlik bir değişken olacaktır.

Aynı yöntemi bit tipinde kullanmak istediğimizde bit*8 ‘ e kadar problem çıkmazken bit*9 dediğimizde problem çıkmaktadır. Bit tipinde 8 den fazla tanımlama yapılamaz. Ama bit*5 gibi 8 den küçük bitlerde kullanılabilir. 

Eğer bit*5 gibi bir tanımlama yapılırsa 5 biti geçmeyecek büyüklükteki bir sayı direkt olarak atanabilir. Yada 0b_11001 gibi yöntemle sayı aktarılabilir.

Bu öğeyi yazdır

Video Zeoslib Kurulumu
Gönderen: admin - 09-25-2017, 07:53 AM - Forum: Zeoslib - Cevap Yok





Lazarus'da zeoslib kurulumu

Bu öğeyi yazdır

  sdposerial component kurulum hatası
Gönderen: run - 09-24-2017, 06:35 AM - Forum: Genel - Cevaplar (2)

Arkadaşlar merhaba 

notebook 'ta sdposerial port eklentisini kurmaya çalışıyorum.  

Zeos.inc(219,5) Fatal: illegal character "'"'" ($22)
Böyle bir hata ile karşılaştım.

usb seri dönüştürücü kullanıyorum. Aygıt yöneticisinde com olarak görüyorum.

Daha önce masaüstü bilgisayara kurmuştum herhangi bir hata ile karşılaşmamıştım.
Hata resmi ektedir, sorunu nasıl çözebilirim?



Eklenti Dosyaları Tırnak(lar)
   
Bu öğeyi yazdır

  2 tarih arasındaki gün farkını bulalım
Gönderen: soncizgi - 09-21-2017, 07:35 PM - Forum: Genel - Cevaplar (1)

Merhaba arkadaşlar, bu mesajda 2 tarih arasındaki gün farkı nasıl elde edilir onun örneğini vermek istiyorum. Belki başklarına da faydası dokunur. Cool

Benim yaptığım bir projede datetimepicker nesnesi ile aldığım tarihi string ifade olarak  veri tabanına kaydediyorum. Örneğin 21.09.2017 şeklinde. Daha sonra 2 tarih arasındaki gün farkı lazım oldu. Eğer sizde benim gibi şöyle bir string ifade olarak tarihi kullanıysanız aşağıdaki yöntemle işinizi halledebilirsiniz.

[Resim: yzPmqk.png]

uses ...,DateUtils; kütüphanesini eklemeyi unutmayın.

Kodlar
******************************************

PHP Kod:
procedure TForm1.Button1Click(SenderTObject);
var 
fark:integer d1d2TDate;
T,g,a,y     String;
T2,g2,a2,y2 :String;
begin
  T
:=edit1.Text;
 
 g:=Copy (T,1,2);
 
 a:=Copy (T,4,2);
 
 y:=Copy (T,7,4);

 
 T2:=edit2.Text;
 
 g2:=Copy (T2,1,2);
 
 a2:=Copy (T2,4,2);
 
 y2:=Copy (T2,7,4);
 
 //d1 := EncodeDate(2017, 09, 17);

 
 d1 := EncodeDate(strtoint(y), strtoint(a), strtoint(g));
 
 d2 := EncodeDate(strtoint(y2), strtoint(a2), strtoint(g2));
fark:= DaysBetween(d1,d2);
label3.Caption:= 'Gün Farkı: '+intToStr(fark);

 
 end      

Bu öğeyi yazdır

  Temel Sorgular
Gönderen: soncizgi - 08-24-2017, 06:46 PM - Forum: Veritabanı - Cevaplar (1)

[Resim: okvXWQ.png]
[Resim: ZE4XBg.png]
[Resim: lWlqGB.png]
[Resim: BAYanV.png]

Bu öğeyi yazdır

  ScreenShot (Ekran yakalama) nasıl yapılır?
Gönderen: soncizgi - 08-22-2017, 05:30 PM - Forum: Genel - Cevap Yok

Arkadaşlar ekran yakalama programını Lazarus ile nasıl yapabilrim. İnternette şu adresi buldum ama açıkçası pek bişey anlamadım. Kodun tamamını paylaşsalardı belki çözerdim.
Böyle bir uygulama için hangi özellik veya bileşen kullanmalıyım?

Bu öğeyi yazdır