Proton Picbasic Komutları

guclusat

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

ABS

Yazılım
Assignment Variable = ABS Variable

Görevi

Sayının Mutlak sayı değerini geri döndürür.

Operatörler

Assignment Variable - Uygun tipte bir değişken
Variable – Sabit değer veya değişken.


Örnek
DEVICE = 16F877
DIM DWD1 AS DWORD ' DWORD değişken tanımla
DIM DWD2 AS DWORD ' DWORD değişken tanımla
CLS
DWD1 = -1234567 ' DWD1 değişkenine -1234567 değerini yükle
DWD2 = ABS DWD1 ' DWD1’in mutlak değerini DWD2’e aktar
PRINT DEC DWD2 ' LCD ekranda görüntülen değer 1234567
STOP

Ondalıklı Sayı Örneği DEVICE = 16F877
DIM FLP1 AS FLOAT ' FLOAT değişken tanımla
DIM FLP2 AS FLOAT ' FLOAT değişken tanımla
CLS
FLP1 = -1234567 ' FLP1’ye -1234567.123 yükle
FLP2 = ABS FLP1 ' FLP2’ye FLP1’in mutlak değerini yükle
PRINT DEC FLP2 ' Ekranda görüntülenen değer 1234567.123
STOP

Ayrıca İnceleyiniz
ASIN, COS, EXP, LOG, LOG10, SIN, SQR, TAN


ACOS

Yazılım
Assignment Variable = ACOS Variable

Görevi

Değerin Ark Kosinüsünü bulur.

Operatörler

Assignment Variable – Uygun tipte bir değişken.
Variable – Sabit değer veya değişken. Bu komut Kosinüsün tersini alır. Yani 1/Cos değerini bulmanıza yarar. Bu komut çalıştığında geriye dönen değer RADYAN’dır. Dönen değer aralığı-1 ile +1 arasında değişir.


Örnek
INCLUDE "PROTON18_4.INC" ' Use the PROTON board for the demo
DEVICE = 18F452 ' Choose a 16-bit core device
DIM FLOATIN AS FLOAT ' Holds the value to ACOS
DIM FLOATOUT AS FLOAT ' Holds the result of the ACOS
DELAYMS 500 ' Wait for the PICmicro to stabilise
CLS ' Clear the LCD
FLOATIN = 0.8 ' Load the variable
FLOATOUT = ACOS FLOATIN ' Extract the ACOS of the value
PRINT DEC FLOATOUT ' Display the result
STOP

Not
ACos komutu 12 bit ve 14 bit çekirdekli işlemcilerde kullanılmaz, ARC COSINE komutu eksta özellikler ve daha fazla bellek gereksinim duyduğu ve 32-bit kayan noktalı işlem gerektirdiği için için 16-bit çekirdekli ünitelerde kullanılabilir.

Floating point trigonometry işlemleri daha fazla bellek ve işlemlemden dolayı bu komutlar diğer komutlara göre daha yavaş çalışır.


ADIN

Yazılım

Variable = ADIN channel number

Görevi

Analog Dijital çeviriciden değeri okur ve değişkene aktarır.

Operatörler

Variable – Kullanıcı tanımlı değişkenler bit, byte, byte_array, word, word_array, dword, or float.
channel number – sabit değer veya değişken.

Örnek
'ADC’nin kanal 0’ından değeri oku ve değişkene yükle
DECLARE ADIN_RES 10 ' 10-bit çözünürlük
DECLARE ADIN_TAD FRC ' RC OSC osilatörü seçildi
DECLARE ADIN_STIME 50 ' Örnekleme zamanı 50us
DIM VAR1 as WORD
TRISA = %00000001 ' AN0(PORTA.0)giriş konumuna alındı
ADCON1 = %10000000 ' PORTA.0 analog giriş moduna alındı.
VAR1 = ADIN 0 ' Okunan değeri VAR1 değişkenine yükle

Tanımlamalar
ADIn komutu için üç farklı çözünürlük kullanılır. Bunlar: DECLARE ADIN_RES 8 , 10 , or 12

Şeklindedir. Kullanığınız mikrodenetleyicideki ADC ünitesinin tipine göre belirlenmesi gerekmektedir. Eğer bu tanımlama yapılmaz ise Mikrodenetleyicinin enerjilendiği anda standart olarak ayarlanmış değeri ne ise o çözünürlük kabul edilir. Örneğin 16F87x serisi için bu 10-bit çözünürlüktür. 16-bit çekirdekli mikrodenetleyiciler için ise standart çözünürlük 8-bit kabul edilmektedir.

DECLARE ADIN_TAD 2_FOSC , 8_FOSC , 32_FOSC , or FRC.

ADC’nin clock kaynağını seçmek için kullanılır. Bütün mikrodenetleyicilerde dört farklı ayar mevcuttur. 2_FOSC, 8_FOSC, and 32_FOSC ayarları harici osilatör için kullanılır. FRC ise mikrodenetleyicinin ADC ünitesinde mevcut olan dahili RC osilatörünün seçilmesi sağlar. Bu tanımlama mikrodenetleyicinin ADCON0 yazmacını düzenlemeyi sağlar. Bu yazmacon 0-1 bitleri bu iş için kullanılır. Bu bitlere 0-3 arasındaki değerlerin girilmesi ile clock kaynağı ayarlanmaktadır.

Eğer bu tanımlama hatalı yapılacak olursa veya yanlış çözünürlük değerleri kullanılacak olursa çevrim sonucunda elde edilecek değerde hata oluşacaktır veya çevrim yapılamayabilecektir. Eğer FRC kullanılırsa bu güvenli çevrim için en ideal clock puls’ini oluşturacaktır. Garantili çevrim için FRC’nin kullanılması gereklidir. FRC ile alacağınız değeri kullanarak diğer modları kullanırsanız bu size bir referans değeri oluşturacaktır.

DECLARE ADIN_STIME 0 to 65535 microseconds (us).

ADC içinde cevrim amaçlı olarak kullanılan bir kondansatör mevcuttur. Bu kondasatörün tam şarj değerine sahip olması için bir şarj süresi gereklidir. Bu süre 0 ile 65535 microseconds (us) arası kullanılabilir. Düşük çözünürlüklerde bu değer küçük seçilmelidir. Daha hassas ve yüksek çözünürlüklerde bu değerin büyük seçilmesi uygun olacaktır.

ADIN_STIME için tipik olarak 50 veya 100 değeri kullanılmalıdır. Bu süre şarj için yeterli zamanı sağlayacaktır. Fakat gerekli gerçek zamanı deneyerek ayarlanması uygun olacaktır.

Not
ADIn komutunu kullanmadan önce mutlaka tris yazmacını kullanılmalıdır. İlgili uçlar giriş konumuna alınmadığı taktirde ADC ile ilgili ayarları yapsanız bile ölçüm alamazsınız. Ayrıca ADC ile ilgili ADCON1 yazmacıda kullanılmalıdır. Bu konu ile ilgili daha detaylı açıklamaları mikrodenetleyicinin dökümanlarında bulabilirsiniz.

Ardışıl ölçümlerde bir çevrim yaptıktan sonra diğer çevrime geçmeden önce kondansatörün tam şarj olabilmesi için gerekli bir zaman aralığını vermeniz gerekmektedir.
Again:
VAR1 = ADIN 3 ' Place the conversion into variable VAR1
DELAYUS 1 ' Wait for 1us
GOTO Again ' Read the ADC forever


ASIN


Yazılım
Assignment Variable = ASIN Variable

Görevi
Değerin Ark Sinüsünü bulur.

Operatörler

Assignment Variable – Uygun tipte bir değişken.
Variable – Sabit değer veya değişken. Bu komut Sinüsün tersini alır. Yani 1/Sin değerini bulmanıza yarar. Bu komut çalıştığında geriye dönen değer RADYAN’dır. Dönen değer aralığı-1 ile +1 arasında değişir.

Örnek
DEVICE = 18F452 ' 16-bit çekirdekli denetleyici
DIM FLOATIN AS FLOAT ' Float değişken tanımlama
DIM FLOATOUT AS FLOAT ' Float değişken tanımlama
DELAYMS 500 ' 500ms bekle
CLS ' LCD ekranını sil
FLOATIN = 0.8 ' Değeri yükle
FLOATOUT = ASIN FLOATIN ' ASIN değerini bul değişkene yükle
PRINT DEC FLOATOUT ' Ekranda görüntüle
STOP

Not
ASin komutu 12 bit ve 14 bit çekirdekli işlemcilerde kullanılmaz, ARC COSINE komutu eksta özellikler ve daha fazla bellek gereksinim duyduğu ve 32-bit kayan noktalı işlem gerektirdiği için için 16-bit çekirdekli ünitelerde kullanılabilir.

Floating point trigonometry işlemleri daha fazla bellek ve işlemlemden dolayı bu komutlar diğer komutlara göre daha yavaş çalışır.

Ayrıca İnceleyiniz
ASIN, COS, EXP, LOG, LOG10, SIN, SQR, TAN


ASM...ENDASM

Yazılım
ASM
assembler mnemonics
ENDASM

veya
@ assembler mnemonic

Görevi

Basic kodlarının için gerekli olduğu durumlarda direk ASM kodları ile yazılım hazırlamak için kullanılır. Bu kodlar direk olarak asm komutları ve mnemonics değerleri yazılarak yapılabilir. Bu yöntem size program yazarken büyük bir esneklik ve kolaylık sağlayacaktır.


ATAN

Yazılım
Assignment Variable = ATAN Variable

Görevi
Değerin Ark Tanjantını bulur.

Operatörler

Assignment Variable – Uygun tipte bir değişken.
Variable – Sabit değer veya değişken. Bu komut Sinüsün tersini alır. Yani 1/Tan değerini bulmanıza yarar. Bu komut çalıştığında geriye dönen değer RADYAN’dır. Dönen değer aralığı-1 ile +1 arasında değişir.

Örnek

DEVICE = 18F452 ' 16-bit çekirdekli denetleyici
DIM FLOATIN AS FLOAT ' Float değişken tanımlama
DIM FLOATOUT AS FLOAT ' Float değişken tanımlama
DELAYMS 500 ' 500ms bekle
CLS ' LCD ekranını sil
FLOATIN = 0.8 ' Değeri yükle
FLOATOUT = ATAN FLOATIN ' ATAN değerini bul değişkene yükle
PRINT DEC FLOATOUT ' Ekranda görüntüle
STOP

Not
ASin komutu 12 bit ve 14 bit çekirdekli işlemcilerde kullanılmaz, ARC COSINE komutu eksta özellikler ve daha fazla bellek gereksinim duyduğu ve 32-bit kayan noktalı işlem gerektirdiği için için 16-bit çekirdekli ünitelerde kullanılabilir.

Floating point trigonometry işlemleri daha fazla bellek ve işlemlemden dolayı bu komutlar diğer komutlara göre daha yavaş çalışır.

Ayrıca İnceleyiniz
ASIN, COS, EXP, LOG, LOG10, SIN, SQR, TAN


BOX

Yazılım
BOX Set_Clear , Xpos Start , Ypos Start , Size

Görevi

Grafik LCD’ye kare çizer.

Operatörler

Set_Clear – 1 değeri ile sadece kare çizer. Eğer 0 verilirse kare çizer ama karenin içinide siler.
Xpos Start – karenin x eksenindeki başlangıç değeri. 0 ile 127 arasında değer alır.
Ypos Start – Karenin y eksenindeki başlangıç değerini verir. 0 ile 63 arasında değer alır.
Size – Karenin büyüklüğünü pixel olarak belirlemenizi sağlar. 0 ile 255 arası değer alır.


Örnek
' Posizyonu 63,32 ve büyüklüğü 20 pixel olan kare çiz
INCLUDE "PROTON_G4.INT"
DIM XPOS as BYTE
DIM YPOS as BYTE
DIM SIZE as BYTE
DIM SET_CLR as BYTE

DELAYMS 200 ' Stabilize için bekle
CLS
XPOS = 63
YPOS = 32
SIZE = 20
SET_CLR = 1
BOX SET_CLR , XPOS , YPOS , SIZE
STOP
Not

Sisteme enerji verdikten sonra LCD’nin hazır duruma geçmesi için bir süre beklemek uygun olacaktır. Dikkat edilirse program açılışta LCD’ye veri göndermeden önce yaklaşık olarak 200ms beklemektedir.

Ayrıca İnceleyiniz
CIRCLE , LINE , LINETO


BRANCH

Yazılım
BRANCHL Index, [Label1 {,...Labeln }]

Görevi

Tek sayfalı veya daha fazla sayfaya sahip işlemciler için dallanma komutu.

Operatörler

Index - Sabit veya değişken , Bu adres dallanmak için kullanılır.
Label1,...Labeln – En fazla 127 dallanma etiketi kullanılır. Eğer 16-bit çekirdekli işlemci kullanıyorsanız en fazla 255 adres tanımlanabilir.


Ö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
Yukarıdaki örnekte index değeri 2 olarak verilmiş. Bu durumda BRANCH komutu çalıştığında Lab_2 etiketli yere dallanma sağlanacaktır. Lab_2 etiketli alana gidildiğinde index değeri 1 olur ve arkasından tekrar start diyerek BRANCH komutu çalışır bu sefer Lab_1’e gider ve program bu şekilde çalışmaya devam eder.



Not
BRANCHL komutunu belleği büyük olan mikrodenetleyiciler için kullanmanız gerekmektedir.

Ayrıca İnceleyiniz
BRANCH, ON GOTO, ON GOTOL, ON GOSUB


BRESTART

Yazılım
BRESTART

Görevi

I2C haberleşmesinde haberleşme için start byte'ını gönderme komutu.
 
Geri
Yukarı