JAL ile çok önce yazdığım RGB LED programı.


JAL (just another language) yüksek düzeyli bir dile sahip derleyicidir. Dolayısı ile bir programı yazması ve anlaması oldukça basit… Bence PIC”e giriş olarak “c” dili ile uğraşmak istemeyenler için oldukça tercih edilebilir bir strateji.

Bu konuda Serkan Akyıldız’ın hazırladığı “JAL İLE PIC PROGRAMLAMA” oldukça sade dile ile hazırlanmış öğretici ve iyi bir kitap.
Ancak JAL’ın da sıkıntısı diğer yüksek seviyeli diller gibi donanıma çok iyi hakim olunamaması.

Ayrıca kütüphanelerin eksikliği de JAL’ı giriş düzeyinde temel işlerde tutmaya neden oluyor. Ancak bana sorulsa PIC’e nereden başlanmalı sorusuna assembly dili yerine kesinlikle üst düzey bir dilden başlanmalı.

Özetle tüm bunlara rağmen JAL pratik kullanımı ve açık kod olması nedeni ile giriş düzeyi için incelenmesi gereken bir derleyici.

Program Microchip PIC 16F84 için RB7, RB6, RB5 ayaklarına bağlı 3 RGB (Red Blue Green) LED’leri aranında kademeli geciş yapıyor. Buna baglı bir takım animasyonlar.

-- by erkancil rgb
include 16f84_4
include jlib

port_b_direction = all_output

var volatile bit colorRed is pin_b7 = low
var volatile bit colorGreen is pin_b6 = low
var volatile bit colorBlue is pin_b5 = low
var volatile bit colorWhite is pin_b4 = low
var volatile byte T1 = 255
var volatile byte T2 = 0
var volatile byte T3 = 255
var volatile byte T4 = 0
var volatile byte T5 = 255
var volatile byte T6 = 0
var volatile byte T7 = 255
var volatile byte x  = 255

procedure redtogreen is
for 150 loop
    for T1 loop
    colorRed = high
    delay_20us (T1)
    colorGreen = high
    colorRed = low
    delay_20us (T2)
    colorGreen = low
    T1 = T1 - 1
    T2 = T2 + 1
    end loop
    end loop

    T1 = 255
    T2 = 0

end procedure

procedure greentoblue is
for 150 loop
    for T3 loop
    colorGreen = high
    delay_20us (T3)
    colorBlue = high
    colorGreen = low
    delay_20us (T4)
    colorBlue = low
    T3 = T3 - 1
    T4 = T4 + 1

    end loop
    end loop

    T3 = 255
    T4 = 0

end procedure

procedure bluetored is
for 150 loop
    for T5 loop
    colorBlue = high
    delay_20us (T5)
    colorRed = high
    colorBlue = low
    delay_20us (T6)
    colorRed = low
    T5 = T5 - 1
    T6 = T6 + 1

    end loop
    end loop

    T5 = 255
    T6 = 0

end procedure

procedure flasor is
 T1 = 255
    T2 = 0
    T3 = 255
    T4 = 0
    T5 = 255
    T6 = 0

    while  T7 > 4  loop

    colorRed = high
    colorGreen = high
    colorBlue = high
    delay_2ms (T7)
    T7 = T7 - 3
    colorRed = low
    colorGreen = low
    colorBlue = low
    delay_1ms (T7)
    end loop
    T7 = 255

end procedure

forever loop

    colorRed = high
    delay_1s (5)
    colorRed = low

    redtogreen

    colorGreen = high
    delay_1s (5)
    colorGreen = low

    greentoblue

    colorBlue = high
    delay_1s (5)
    colorBlue = low

    bluetored

    colorRed = high
    delay_1s (5)
    colorRed = low

end loop
  1. Henüz hiç yorum yok.
(yayınlanmayacak)