Proton PICBasic Komutları ve Kullanım Örnekleri

guclusat

Tanınmış Üye
Süper Moderatör

Proton PICBasic Komutları ve Kullanım Örnekleri​

Proton PICBasic, PIC mikrodenetleyiciler için BASIC tabanlı program geliştirmeyi sağlayan bir programlama dilidir. Bu rehberde ABS, ACOS, ADIN, ASIN, ASM…ENDASM, ATAN, BOX, BRANCHL ve BRESTART komutlarının görevleri, kullanım biçimleri ve örnek kodları açıklanmaktadır.

1. ABS – Mutlak Değer​

Yazılım biçimi:

Değişken = ABS Değişken

Görevi: Bir sayının mutlak değerini döndürür. Negatif sayılar pozitif değere çevrilir.

Örnek:

DEVICE = 16F877

DIM DWD1 AS DWORD
DIM DWD2 AS DWORD

DWD1 = -1234567
DWD2 = ABS DWD1

PRINT DEC DWD2
STOP
Bu örnekte DWD1 değişkeninin mutlak değeri hesaplanarak DWD2 değişkenine aktarılır. Sonuç 1234567 olur.

Ondalıklı sayı örneği:

DEVICE = 16F877

DIM FLP1 AS FLOAT
DIM FLP2 AS FLOAT

FLP1 = -1234567.123
FLP2 = ABS FLP1

PRINT DEC FLP2
STOP
Bu örnekte negatif kayan noktalı sayının mutlak değeri hesaplanır. Gösterilen basamak sayısı, kullanılan kayan noktalı sayı desteğine ve görüntüleme biçimine bağlıdır.

Ayrıca inceleyiniz: ASIN, COS, EXP, LOG, LOG10, SIN, SQR, TAN.

2. ACOS – Ters Kosinüs​

Yazılım biçimi:

Değişken = ACOS Değişken

Görevi: Bir sayının ters kosinüsünü, yani arkkosinüsünü hesaplar. Sonuç radyan cinsindedir.

Örnek:

INCLUDE "PROTON18_4.INC"
DEVICE = 18F452

DIM FLOATIN AS FLOAT
DIM FLOATOUT AS FLOAT

DELAYMS 500
CLS

FLOATIN = 0.8
FLOATOUT = ACOS FLOATIN

PRINT DEC FLOATOUT
STOP
Bu örnekte 0,8 değerinin arkkosinüsü hesaplanır.

Not: ACOS, 1 / COS(x) işlemi değildir. Kosinüs fonksiyonunun ters fonksiyonudur. Gerçek sayılarla hesaplama yapılırken giriş değeri -1 ile +1 arasında olmalıdır. Sonuç radyan cinsindedir.

Kaynak dokümana göre ACOS komutu 12 bit ve 14 bit çekirdekli işlemcilerde desteklenmez; daha fazla bellek ve işlem gücü gerektiren kayan noktalı matematik işlemleri için 16 bit çekirdekli işlemciler hedeflenmiştir. Kullanılan Proton sürümünün ve mikrodenetleyicinin desteği kontrol edilmelidir.

3. ADIN – Analog Dijital Dönüştürücüden Okuma​

Yazılım biçimi:

Değişken = ADIN KanalNumarası

Görevi: Mikrodenetleyicinin ADC biriminden analog giriş değerini okur ve sonucu değişkene aktarır.

Örnek:

DEVICE = 16F877

DECLARE ADIN_RES 10
DECLARE ADIN_TAD FRC
DECLARE ADIN_STIME 50

DIM VAR1 AS WORD

TRISA = %00000001
ADCON1 = %10000000

VAR1 = ADIN 0
Bu örnekte AN0 girişinden okunan analog değer VAR1 değişkenine aktarılır.

ADIN komutunun ayarları​

ADIN_RES – Dönüşüm çözünürlüğü

ADC dönüşümünün çözünürlüğünü belirler.

DECLARE ADIN_RES 8
Kullanılabilen çözünürlük seçenekleri, hedef mikrodenetleyicinin ADC donanımına ve Proton sürümüne bağlıdır. Örneğin PIC16F87x ailesinde ADC çözünürlüğü 10 bittir.

ADIN_TAD – ADC saat kaynağı

ADC dönüşümünde kullanılacak saat kaynağını belirler.

DECLARE ADIN_TAD 2_FOSC
DECLARE ADIN_TAD 8_FOSC
DECLARE ADIN_TAD 32_FOSC
DECLARE ADIN_TAD FRC
2_FOSC, 8_FOSC ve 32_FOSC seçenekleri işlemci saatinden türetilen kaynakları; FRC ise ADC için kullanılan dahili RC saat kaynağını ifade eder. Geçerli seçenekler ve zamanlama gereksinimleri mikrodenetleyiciye göre değişebilir.

Yanlış saat veya çözünürlük ayarı, ölçüm hatalarına ya da ADC dönüşümünün düzgün çalışmamasına neden olabilir.

ADIN_STIME – Örnekleme süresi

ADC girişindeki örnekleme kondansatörünün yeterince şarj olması için beklenen süreyi belirler.

DECLARE ADIN_STIME 50
Değer mikrosaniye cinsindendir. Kaynak dokümanda 50 veya 100 µs tipik başlangıç değerleri olarak önerilmiştir. Uygun süre; kaynak empedansına, ADC özelliklerine ve istenen doğruluğa bağlıdır.

ADC kullanırken dikkat edilecekler​

  • İlgili pinin TRIS yazmacıyla giriş olarak ayarlanması gerekir.
  • Analog giriş seçimi ve ADC yapılandırması hedef PIC'in veri sayfasına uygun yapılmalıdır.
  • Ardışık ölçümlerde girişin yeniden örneklenmesi için gerekli süre bırakılmalıdır.
  • ADC çözünürlüğüyle uyumlu bir değişken tipi kullanılmalıdır.
Sürekli ölçüm örneği:

Again:
VAR1 = ADIN 3
DELAYUS 1
GOTO Again
Bu kod, ADC kanal 3'ten sürekli ölçüm alır. Kanalın ve ADC ayarlarının hedef mikrodenetleyicide geçerli olması gerekir.

4. ASIN – Ters Sinüs​

Yazılım biçimi:

Değişken = ASIN Değişken

Görevi: Bir sayının ters sinüsünü, yani arksinüsünü hesaplar. Sonuç radyan cinsindedir.

Örnek:

DEVICE = 18F452

DIM FLOATIN AS FLOAT
DIM FLOATOUT AS FLOAT

DELAYMS 500
CLS

FLOATIN = 0.8
FLOATOUT = ASIN FLOATIN

PRINT DEC FLOATOUT
STOP
Bu örnekte 0,8 değerinin arksinüsü hesaplanır.

Not: ASIN, 1 / SIN(x) işlemi değildir. Gerçek sayılarla hesaplama için giriş değeri -1 ile +1 arasında olmalıdır. Kayan noktalı trigonometrik işlemler daha fazla bellek ve işlem süresi gerektirebilir.

Kaynak dokümanda ASIN komutunun 12 bit ve 14 bit çekirdekli işlemcilerde desteklenmediği belirtilmektedir. Kullanılan derleyici sürümüyle uyumluluğu kontrol edilmelidir.

Ayrıca inceleyiniz: COS, EXP, LOG, LOG10, SIN, SQR, TAN.

5. ASM…ENDASM – Assembly Kodları​

Yazılım biçimi:

ASM
; Assembly komutları
ENDASM
Tek satırlık kullanım:

@ assembler_mnemonic
Görevi: BASIC programının gerekli bölümlerinde doğrudan Assembly komutları kullanılmasını sağlar. Bu yöntem, işlemciye özgü komutlardan yararlanmak ve belirli işlemleri daha düşük seviyede gerçekleştirmek için kullanılabilir.

Assembly komutlarının yazımı hedef PIC'in komut setine ve kullanılan Proton derleyicisinin kurallarına uygun olmalıdır.

6. ATAN – Ters Tanjant​

Yazılım biçimi:

Değişken = ATAN Değişken

Görevi: Bir sayının ters tanjantını, yani arktanjantını hesaplar. Sonuç radyan cinsindedir.

Örnek:

DEVICE = 18F452

DIM FLOATIN AS FLOAT
DIM FLOATOUT AS FLOAT

DELAYMS 500
CLS

FLOATIN = 0.8
FLOATOUT = ATAN FLOATIN

PRINT DEC FLOATOUT
STOP
Bu örnekte 0,8 değerinin arktanjantı hesaplanır.

Not: ATAN, 1 / TAN(x) işlemi değildir. Ters tanjant fonksiyonudur ve gerçek sayılardaki tüm giriş değerleri için tanımlıdır. Sonuç radyan cinsindedir.

Kayan noktalı trigonometrik işlemlerin bellek ve işlem süresi gereksinimi, hedef işlemciye göre değişebilir.

Ayrıca inceleyiniz: ASIN, COS, EXP, LOG, LOG10, SIN, SQR, TAN.

7. BOX – Grafik LCD'ye Kare Çizme​

Yazılım biçimi:

BOX Set_Clear, Xpos_Start, Ypos_Start, Size

Görevi: Desteklenen grafik LCD üzerinde kare çizmek için kullanılır.

Parametreler:

  • Set_Clear: 1 değeri kareyi çizer. 0 değeri ise kaynak açıklamasına göre kareyi çizip iç alanını siler.
  • Xpos_Start: Karenin yatay başlangıç konumu; kaynak örneğinde 0–127 aralığı belirtilmiştir.
  • Ypos_Start: Karenin dikey başlangıç konumu; kaynak örneğinde 0–63 aralığı belirtilmiştir.
  • Size: Karenin piksel cinsinden boyutudur.
Örnek:

INCLUDE "PROTON_G4.INT"

DIM XPOS AS BYTE
DIM YPOS AS BYTE
DIM SIZE AS BYTE
DIM SET_CLR AS BYTE

DELAYMS 200
CLS

XPOS = 63
YPOS = 32
SIZE = 20
SET_CLR = 1

BOX SET_CLR, XPOS, YPOS, SIZE
STOP
Bu örnekte grafik LCD üzerinde 63,32 başlangıç koordinatları ve 20 piksel boyutuyla kare çizilmesi amaçlanır.

Not: PROTON_G4.INT dosyasının, LCD sürücüsünün ve BOX komutunun kullanılan donanımla uyumlu olması gerekir. Başlangıçta LCD'nin hazır duruma gelmesi için kısa bir bekleme süresi kullanılmıştır.

Ayrıca inceleyiniz: CIRCLE, LINE, LINETO.

8. BRANCHL – Dallanma Komutu​

Yazılım biçimi:

BRANCHL Index, [Label1, Label2, Label3]
Görevi: İndeks değerine göre program akışını belirtilen etiketlerden birine yönlendirir.

Parametreler:

  • Index: Dallanılacak etiketi seçen sabit veya değişken.
  • Label1…Labeln: Dallanma yapılabilecek etiketler.
Kaynak dokümanda tek sayfalı ve çok sayfalı işlemciler için dallanma komutu olarak açıklanmıştır. Etiket sayısı ve bellek kısıtlamaları kullanılan komuta ve işlemciye bağlıdır.

Örnek:

DEVICE 16F877

DIM INDEX AS BYTE

INDEX = 2

Start:
BRANCHL INDEX, [Lab_0, Lab_1, Lab_2]

Lab_0:
INDEX = 2
GOTO Start

Lab_1:
INDEX = 0
GOTO Start

Lab_2:
INDEX = 1
GOTO Start
Örnekte indeks değeri 2 olduğundan program Lab_2 etiketine dallanır. Burada indeks 1 yapılır ve program başa döndüğünde Lab_1 etiketine yönelir. Bu işlem döngü şeklinde devam eder.

Not: BRANCHL komutu, etiket sayısı ve bellek kullanımı bakımından hedef işlemcinin sınırları dikkate alınarak kullanılmalıdır.

Ayrıca inceleyiniz: BRANCH, ON GOTO, ON GOTOL, ON GOSUB.

9. BRESTART – I²C Haberleşmesinde Yeniden Başlatma​

Yazılım biçimi:

BRESTART
Görevi: I²C haberleşmesinde yeniden başlatma koşulunu (Repeated START) oluşturmak için kullanılan komuttur.

I²C haberleşmesinde START koşulu veri aktarımını başlatır; RESTART ise hat serbest bırakılmadan yeni bir başlangıç koşulu oluşturarak haberleşmenin sürdürülmesini sağlayabilir. Komutun tam kullanım şekli, ilgili Proton PICBasic sürümünün I²C komutlarıyla birlikte değerlendirilmelidir.


Önemli: Örnek kodlar açıklama amaçlıdır. Mikrodenetleyici modeli, Proton sürümü, LCD kütüphanesi ve çevre birimi ayarları doğrulanmadan kodların her PIC modelinde doğrudan çalışacağı varsayılmamalıdır.
 
Son düzenleme:

Proton PICBasic Komutları – Devamı​

10. BRANCH – Dallanma Komutu​

Görevi: Bir indeks değerine göre program akışını belirtilen etiketlerden birine yönlendirir.

Örnek kullanım:

DEVICE = 16F877

DIM INDEX AS BYTE

INDEX = 1

BRANCH INDEX, [ETIKET0, ETIKET1, ETIKET2]

ETIKET0:
PRINT "SECENEK 0"
STOP

ETIKET1:
PRINT "SECENEK 1"
STOP

ETIKET2:
PRINT "SECENEK 2"
STOP
Açıklama: İndeks değeri 1 olduğunda program ikinci etikete yönlendirilir. BRANCH ve BRANCHL komutlarının dallanma sınırları ve sözdizimi kullanılan Proton sürümüne göre kontrol edilmelidir.

11. BTFSC ve BTFSS – Bit Kontrol Komutları​

Görevi: Bir yazmaçtaki bitin durumunu kontrol ederek sonraki komutun atlanmasını sağlar. Bunlar PIC Assembly komutlarıdır; doğrudan BASIC komutu gibi kullanılmaları yerine uygun Assembly bloğunda kullanılmaları gerekebilir.

  • BTFSC: Bit 0 ise sonraki komutu atlar.
  • BTFSS: Bit 1 ise sonraki komutu atlar.
Assembly örneği:

ASM
BTFSC PORTB, 0
GOTO BIT_ONE
GOTO BIT_ZERO
ENDASM
Bu örnek, PORTB yazmacının 0. bitini kontrol eder. Bitin durumuna göre program farklı etiketlere yönlendirilir. Assembly etiketlerinin Proton derleyicisindeki yazım kurallarına uygun olması gerekir.

12. CIRCLE – Grafik LCD'ye Daire Çizme​

Görevi: Desteklenen grafik LCD üzerinde daire çizmek için kullanılır.

Örnek kullanım:

INCLUDE "PROTON_G4.INT"

DELAYMS 200
CLS

' CIRCLE komutunun parametreleri
' Kullanilan grafik LCD kutuphanesine gore belirlenmelidir.

STOP
Açıklama: Dairenin merkez koordinatları, yarıçapı ve çizim biçimi gibi parametrelerin yazımı kullanılan Proton grafik LCD kütüphanesine göre doğrulanmalıdır. Kesin komut biçimi doğrulanmadan parametreli bir örnek kullanılması önerilmez.

13. CLS – Ekranı Temizleme​

Görevi: Desteklenen LCD veya ekran arayüzünün görüntüsünü temizlemek için kullanılır.

Örnek:

DEVICE = 16F877

DELAYMS 200
CLS

STOP
Açıklama: Programın başında ekranı temizlemek, önceki görüntüden kalan karakterlerin görünmesini önlemeye yardımcı olur. Komutun kullanılabilmesi için uygun LCD bağlantısı ve Proton ekran desteği gerekir.

14. COS – Kosinüs Hesaplama​

Görevi: Verilen açının kosinüsünü hesaplar. Proton'un kayan noktalı matematik desteğiyle kullanılır; açı birimi ve sonuç biçimi derleyici dokümantasyonundan doğrulanmalıdır.

Örnek:

DEVICE = 18F452

DIM FLOATIN AS FLOAT
DIM FLOATOUT AS FLOAT

FLOATIN = 0.8
FLOATOUT = COS FLOATIN

PRINT DEC FLOATOUT
STOP
Açıklama: Bu örnek, COS fonksiyonuna verilen değerin kosinüsünü hesaplamayı amaçlar. Proton'un ilgili sürümünde fonksiyonun kabul ettiği açı birimi ve kayan noktalı sayı gösterimi kontrol edilmelidir.

15. DELAYMS – Milisaniye Bekleme​

Görevi: Programın belirtilen süre boyunca beklemesini sağlar.

Yazım biçimi:

DELAYMS 1000
Bu örnekte program yaklaşık 1000 milisaniye, yani 1 saniye bekler.

Örnek:

DEVICE = 16F877

TRISB.0 = 0

BASLA:
PORTB.0 = 1
DELAYMS 1000

PORTB.0 = 0
DELAYMS 1000

GOTO BASLA
Bu örnek, RB0 çıkışını bir saniye açık ve bir saniye kapalı tutan bir döngüyü gösterir. Osilatör ayarları ve devre bağlantıları doğru yapılmalıdır.

16. DELAYUS – Mikrosaniye Bekleme​

Görevi: Programın mikrosaniye cinsinden kısa bir süre beklemesini sağlar.

Örnek:

DEVICE = 16F877

DELAYUS 10
Bu örnekte program 10 mikrosaniyelik bekleme komutunu çalıştırır. Gerçek zamanlama; işlemci saatine, derleyiciye ve komutun uygulanışına bağlıdır.

17. DIM – Değişken Tanımlama​

Görevi: Program içinde kullanılacak değişkenleri tanımlar.

Örnek:

DIM SAYI AS BYTE
DIM DEGER AS WORD
DIM DURUM AS BIT
  • BYTE: 8 bitlik veri.
  • WORD: 16 bitlik veri.
  • BIT: Tek bitlik değer.
Diğer veri türleri ve desteklenen aralıklar kullanılan Proton sürümüne göre kontrol edilmelidir.

18. FOR…NEXT – Sayaç Kontrollü Döngü​

Görevi: Belirlenen başlangıç ve bitiş değerleri arasında bir komut grubunu tekrarlar.

Örnek:

DEVICE = 16F877

DIM SAYAC AS BYTE

FOR SAYAC = 1 TO 10
PRINT DEC SAYAC
NEXT
STOP
Bu örnekte sayaç 1'den 10'a kadar ilerler. Döngü her adımda sayaç değerini ekrana gönderir.

19. GOSUB ve RETURN – Alt Program Kullanımı​

Görevi: Programın belirli bir etiketin altındaki kodu çalıştırmasını ve ardından çağrıldığı noktaya dönmesini sağlar.

Örnek:

DEVICE = 16F877

BASLA:
GOSUB MESAJ
STOP

MESAJ:
PRINT "MERHABA"
RETURN
GOSUB MESAJ komutu MESAJ etiketine gider. RETURN komutu ise çağrıdan sonraki noktaya geri döner.

20. GOTO – Program Akışını Yönlendirme​

Görevi: Programın belirtilen etikete gitmesini sağlar.

Örnek:

DEVICE = 16F877

BASLA:
PRINT "TEST"
GOTO BASLA
Bu örnek sürekli tekrarlanan bir döngü oluşturur. Çıkış koşulu bulunmadığı için program durdurulana kadar çalışır.

21. HIGH ve LOW – Dijital Çıkış Kontrolü​

Görevi: Uygun şekilde yapılandırılmış bir pini lojik yüksek veya düşük seviyeye getirir.

Örnek:

DEVICE = 16F877

TRISB.0 = 0

BASLA:
HIGH PORTB.0
DELAYMS 500

LOW PORTB.0
DELAYMS 500

GOTO BASLA
Bu örnek RB0 pinini yarım saniye yüksek, yarım saniye düşük seviyede tutar. Röle veya motor gibi yükler doğrudan PIC pininden sürülmemeli; uygun sürücü devresi kullanılmalıdır.

22. IF…THEN – Koşullu İşlem​

Görevi: Belirtilen koşul doğru olduğunda bir komutun veya komut grubunun çalıştırılmasını sağlar.

Örnek:

DEVICE = 16F877

DIM SAYI AS BYTE

SAYI = 5

IF SAYI = 5 THEN
PRINT "SAYI 5"
ENDIF

STOP
Bu örnekte SAYI değişkeni 5 olduğu için ekrana SAYI 5 mesajı gönderilir. Çok satırlı koşulların tam yazım biçimi kullanılan Proton sürümünün söz dizimine uygun olmalıdır.


Devam notu: Bu bölüm, komut sözlüğünün devamı için hazırlanmış bir taslaktır. Özellikle BRANCH, CIRCLE ve COS gibi komutların kesin söz dizimi ve donanım desteği, kullanılan Proton PICBasic sürümünün resmi dokümantasyonuyla doğrulanmalıdır. Doğrulanmamış örnekleri çalışır kod olarak yayımlamamak daha doğru olacaktır.
 

Proton PICBasic Komutları – Devamı​

14. PRINT Komutu​

PRINT komutu, desteklenen LCD ekranlara metin ve değişken değerleri göndermek için kullanılır. Proton derleyicisinde LCD bağlantısı ve ekran ayarları, kullanılan donanım ile derleyici yapılandırmasına göre yapılmalıdır.

Genel kullanım:

Print "Merhaba"
Kullanım alanları: LCD ekranlarda menü, ölçüm sonucu, sayaç ve durum bilgisi göstermek.

15. INPUT ve OUTPUT Komutları​

Bu komutlar mikrodenetleyici pinlerinin giriş veya çıkış olarak kullanılmasını sağlar.

  • INPUT: Pinin giriş olarak kullanılmasını sağlar.
  • OUTPUT: Pinin çıkış olarak kullanılmasını sağlar.
Genel kullanım:

Input PORTB.0
Output PORTB.1
Dikkat: Pin adlandırması ve yön kontrolünün kesin sözdizimi kullanılan Proton sürümüne göre kontrol edilmelidir. Bazı PIC modellerinde analog işlevli pinlerin dijital giriş/çıkış olarak kullanılabilmesi için ilgili analog ayarlarının da yapılması gerekir.

16. LOOKUP Komutu​

LOOKUP, bir indeks değerine karşılık gelen sabiti tablodan seçmek için kullanılır. Örneğin, bir sayı dizisinden değer seçmek veya önceden tanımlanmış verileri sırayla okumak için kullanılabilir.

Genel mantık:

' INDEX değerine karşılık gelen
' tablo elemanını seç
İndeks sıfırdan başlar. İndeksin tablodaki eleman sayısını aşması durumunda değişkenin güncellenmemesi mümkündür; bu nedenle sınır kontrolü yapılmalıdır.

17. LOOKDOWN Komutu​

LOOKDOWN, verilen değerin sabitlerden oluşan bir listede bulunup bulunmadığını araştırır. Eşleşme bulunduğunda, eşleşen elemanın listedeki sıra numarasını döndürür.

Örneğin, seri haberleşme üzerinden alınan bir karakterin rakam veya harf tablosundaki konumunu belirlemek için kullanılabilir.

LOOKUP ile farkı:

  • LOOKUP: İndeksten tablo değerine ulaşır.
  • LOOKDOWN: Aranan değerden tablo indeksine ulaşır.

18. PWM Komutu​

PWM (Darbe Genişlik Modülasyonu), bir çıkış sinyalinin darbe genişliğini değiştirerek ortalama gücü kontrol etmek için kullanılan yöntemdir.

Başlıca kullanım alanları:

  • LED parlaklığını ayarlamak
  • DC motor hızını kontrol etmek
  • Uygun filtre devresiyle analog seviyeye benzer bir gerilim elde etmek
PWM sinyalinin frekansı, çözünürlüğü ve kullanılabilir pinleri mikrodenetleyiciye ve kullanılan komuta bağlıdır. Donanımsal PWM ile yazılımsal PWM aynı şey değildir; örnek devre hazırlanırken bu ayrım dikkate alınmalıdır.

19. SERIN Komutu​

SERIN, bir giriş pininden seri veri almak için kullanılır. Uygun yapılandırmayla başka bir mikrodenetleyiciden, seri dönüştürücüden veya harici modülden veri okunabilir.

Kullanım alanları:

  • Seri bağlantı üzerinden komut alma
  • Sensör verisi okuma
  • İki mikrodenetleyici arasında veri aktarımı
Seri haberleşmede baud hızı, lojik seviye, veri biçimi ve gönderici-alıcı ayarları uyumlu olmalıdır. Komutun parametreleri Proton sürümünün kılavuzuna göre belirlenmelidir.

20. SEROUT Komutu​

SEROUT, bir çıkış pininden seri veri göndermek için kullanılır. Metin, karakter veya uygun biçimde dönüştürülmüş sayısal veriler aktarılabilir.

Kullanım alanları:

  • Seri terminale bilgi gönderme
  • Başka bir mikrodenetleyiciye komut iletme
  • Harici bir seri modüle veri gönderme
Önemli: Yazılımsal seri haberleşmede zamanlama, osilatör frekansı ve bağlantı yapılan cihazın lojik seviyeleri önemlidir. RS-232 bağlantısı ile TTL/CMOS UART bağlantısı doğrudan aynı kabul edilmemelidir; gerekirse seviye dönüştürücü kullanılmalıdır.

21. HIGH ve LOW Komutları​

HIGH ve LOW, dijital çıkış pinini lojik 1 veya lojik 0 seviyesine getirir.

Genel kullanım mantığı:

High PORTB.0
DelayMS 500
Low PORTB.0
DelayMS 500
Bu örneğin amacı, RB0 çıkışını belirli aralıklarla açıp kapatmaktır. Kullanılan Proton sürümünde pin adı ve gecikme komutunun yazımı kontrol edilmelidir.

Bir LED bağlanacaksa uygun seri direnç kullanılmalıdır. Röle veya motor gibi yükler mikrodenetleyici pinine doğrudan bağlanmamalı; uygun sürücü devresi kullanılmalıdır.

22. FOR...NEXT Döngüsü​

FOR...NEXT, bir komut grubunu belirli sayıda tekrarlamak için kullanılır.

Genel kullanım:

For SAYAC = 1 To 10
' Tekrarlanacak işlemler
Next
Bu yapı, sayaçlar, tekrarlanan ölçümler, tablo tarama ve belirli sayıda işlem gerçekleştirme gibi uygulamalarda kullanılır.

23. GOSUB ve RETURN Komutları​

GOSUB, program içinde bir alt programa geçiş yapar. RETURN ise alt programdan çağrının yapıldığı noktaya geri döner.

Örneğin, aynı ekran güncelleme işlemi programın farklı yerlerinde tekrar kullanılacaksa ayrı bir alt programa taşınabilir.

Alt program çağrıları gereksiz yere iç içe kullanılmamalı; kullanılan derleyicinin çağrı yığını ve program belleği sınırları dikkate alınmalıdır.

24. IF...THEN Komutu​

IF...THEN, bir koşulun doğru olup olmadığını kontrol ederek koşula bağlı işlem yapılmasını sağlar.

Genel kullanım:

If DEGER > 100 Then
' Koşul doğruysa yapılacak işlem
EndIf
Bu komut; sensör eşik kontrolü, buton durumunu değerlendirme, ölçüm sonuçlarını sınıflandırma ve hata kontrolü gibi işlemlerde kullanılabilir.


Sonuç​

Proton PICBasic ile program geliştirirken komutların işlevlerini öğrenmek kadar, kullanılan derleyici sürümünün söz dizimini ve hedef PIC mikrodenetleyicinin donanım özelliklerini de bilmek önemlidir.

Özellikle LCD, PWM ve seri haberleşme örnekleri hazırlanırken ilgili Proton Compiler kılavuzundaki parametreler kontrol edilmeli ve kodlar hedef mikrodenetleyicide derlenerek test edilmelidir.
 
Geri
Yukarı