0xff nedir / Silme yöntemleri

0xff Nedir

0xff nedir

Sayılar

JavaScript’te tüm sayılar 64-bit formatında tutulur IEEE-754, buna “double precision” da denir.

Sayılar ile ilgili bilinenlerin üzerinden tekrar geçecek olunursa.

Sayıyı yazmanın birçok yolu

Diyelim ki 1 milyar yazmak istiyorsunuz. Şu şekilde:

Fakat gerçek hayatta bu kadar 0 yan yana yazdığınızda karışma şansı olduğundan bunun yerine veya gibi yazılabilmektedir. Aynı özellik JavaScript için de geçerli. Fakat bu defa sayıdaki 0 sayısı ile birlikte kullanılmalıdır:

Çok küçük bir sayıya bakıldığında. Örneğin 1 mikrosaniye ( saniyenin milyonda 1’i):

Aynı şekilde yardımcı olabilir. 0 ları yazmak yerine :

Şeklinde tanımlayabilirsiniz. gördüğünüz gibi 6 tane sıfır bulunmaktadır. Bundan dolayı şeklinde yazılabilir.

HexaDecimal, binary ve octal sayılar.

Hexadecimal sayılar JavaScript’te çoğunlukla renklerde, karakter çevrimlerinde ve birçok alanda kullanılmaktadır. Bundan dolayı gibi kolay yazım biçimine sahiptir. Diğer türlü sayı kullanılması gerekmektedir.

Örneğin:

Binary ve Octal sayı sistemleri ise çok nadir kullanılmaktadır fakat veya önekleri mevcuttur.

3 çeşit sayısal sistem desteklenmiştir. Diğer sayısal sistemler için ise kullanılmalıdır.

toString(taban)

verilen tabana göre karakter dizisini döndürür.

Örneğin:

ile arasında değişebilir. Varsayılanı dur.

Genel olarak kullanımı şu şekildedir:

  • 16-tabanı hex renkler için, karakter çevrimleri için kullanılır. ve arası kullanılabilir.

  • 2-tabanı bit tipindeki uygulamalar için kullanılır. Sadece veya 'dir değerlerini alabilir.

  • 36-tabanı maximum bir basamak veya arası kullanılabilir. Bu da demek oluyor ki bütün latin alfabesi sayıları tanımlamak için kullnılabilir. Bu uzun sayısal bir değeri daha kısa bir değee çevirmek istendiğinde kullanılabilir. Örneğin URL kısaltma kolay bir şekilde 'nda ifade edilebilir.

İki nokta ile metod çağırımı

şeklinde yazım, hatalı bir yazım değildir. Eğer sayı üzerinden doğrudan metod çağırılmak isteniyor ise yazımı kullanılıri

Eğer tek nokta olursa: hata meydana gelir. Çünkü tek nokta olduğunda JavaScript ondalık sayı olarak algılar ve hata verir. Fakat bir tane daha nokta koyulursa JavaScript ondalık sayı olmadığını anladar ve doğrudan metoda gider.

Şu şekilde de yazılabilir: .

Yuvarlama

Sayılar ile yapılan önemli işlemlerden biri de yuvarlama işlemidir.

Yuvarlama işlemi için birçok dahili fonksiyon bulunmaktadır:

Aşağı yuvarlar: , olur.
Yukarı yuvarlar: , olur.
En yakın tam sayıya yuvarlar: , ve olur.
(Internet Explorer desteklemez)
Ondalık bölümü siler: , olur.

Tablo şeklinde aşağıdaki gibi özetlenebilir:

Bu fonksiyonlar ondalık sayılar için önünüze gelebilecek tüm farklılıkları kapsar. Fakat ya ondalık bölümden n. basamağını yuvarlamak isterseniz?

Örneğin diye bir sayı olsun ve bunu 2 basamağa yuvarlamak istiyorsunuz gibi

Bunu yapmak için iki yol bulunmaktadır:

  1. Çarp ve Böl.

    Örneğin 2. basamaktan sonrasını yuvarlamak istiyorsanız bunu ile çarpıp sonra tekrar e bölerseniz istediğinizi elde etmiş olursunuz.

  2. toFixed(n) kullanarak ondalık bölümde basamaktan sonrası için yuvarlama yapılabilir.

    Bu gibi tam sayıya yakınlığına göre yukarıya veya aşağıya yuvarlar:

    karakter dizisi döndürür. Eğer ondalık bölüm argümandan kısa ise sona eklenir.

    Önüne artı koyarak veya fonksiyonunu kullaranak bunu sayıya çevirebilirsiniz: .

Küsürlü hesaplama

JavaScript sayıları IEEE-754 ifade edilir, bunlardan 52’si basamakları tutar. 11 tanesi ise ondalık bölümleri tutar ( tam sayılar için bu 11 bit sıfır olur) ve 1 bit işareti tutar.

Eğer sayı çok büyükse 64 bit alanın dışına çıkabilir bu da sonsuz döndürür.

Çok ta açık olmamakla birlikte çoğunlukla ola gelen bir problem ise küsür kaybıdır.

Aşağıdaki olayı test edin:

Doğru eğer ile 'nin toplamının olduğunu sanıyorsanız yanılıyorsunuz.

Peki değilse ne o zaman ?

Yok artık! Burada yanlış karşılaştırmanın sonuçlarını gördünüz. Düşünün bir e-ticaret sitesi yapıyorsunuz. Kullanıcı ve lik iki tane çiklet ekledi sepetine. Sonuçta toplam oldu. Sitenize gelen kişinin kafası karışacaktır.

Peki neden böyle bir şey oluyor?

Sayı hafızada binary formatta tutulur. Fakat ondalık bölümleri , gibi desimal sistemde çok basit gibi duran sayılar aslında bitmez bir binary forma sahiptir.

nedir? in bölümünden elde edilir. Onluk sistemde kolayca gösterilir. Fakat ondalık sistemde sonsuza kadar şeklinde devam eder.

Öyleyse 'a bölüm onluk sayılarda sorun yaratmazken 'e bölüm sorun yaratmaktadır. Aynı neden dolayı, bu defa binary sistem , aynı şekilde sonsuza kadar gider, 'nin katları ile bölüm tam sonuç verecektir. Fakat sonsuza kadar giden bir binary değer verir.

Aslında 0.1 veya 0.2 tam olarak saklanamaz, tıpkı 'ün tam olarak saklanamaması gibi.

IEEE-754 bunu en yakın değere yuvarlayarak çözmektedir. Bu kurallar bizim “küçük küsürleri” görmemizi engeller.

Örneğin:

Toplandığında ise “küsür kayıpları” üst üste eklenir. Bundan dolayı etmez.

Sadece JavaScript bu sorundan muzdarip değildir

Bu problemler diğer programlama dillerinde de mevcuttur.

PHP, Java, C, Perl, Ruby gibi diller de aslında aynı değeri verir. Çalıştıkları sistem aynı şekilde binary(ikili) sistemdir.

Bu problemden nasıl kurtulunur? Tabi bunun için bir kaç yöntem mevcuttur:

  1. toFixed(n) metodu yardımı ile yuvarlayabilirsiniz:

    Unutmayın her zaman karakter dizisi döndürür. 'dan sonra 2 basamak alır. Eğer e-ticaret sistemi üzerinde çalışıyorsanız bu gerçekten kullanışlıdır çünkü sonuç olmalıdır. Diğer hallerde önüne koyarak bunu sayıya çevirebilirsiniz:

  2. Geçici olarak sayılar tam sayıya çevrilio sonradan geri döndürülebilir. Aşağıdaki gibi çalışır:

    Aşağıdaki gibi çalışır ve sonrasında iki tam sayı hiçbir ondalık bölüm olmadan toplanır böylece küsürat kaybı ortadan kalkar.

  3. Eğer e-ticaret sitesi üzerinde çalışıyorsanız. En radikal çözüm tüm küsüratları kuruş olarak kaydedip hiç küsürat kullanmamak olabilir. Fakat ya %30 indirip yapmak isterseniz? Pratikte bu kullanım çok nadirdir. Bundan dolayı yukarıdaki iki şekilde problem çözülebilir.

Aşağıdaki kodu çalıştırın:

Bu da küsürat kaybından meydana gelir. Bir sayıda 64 bit bulunmaktadır. 52 tanesi basamak tutmaktadır. Fakat bu durumda bu basamak yeterli değildir. Bundan dolayı en etkisiz basamak kaybolur.

JavaScript böyle bir durumda hata vermez. Belirli formata göre en iyi şekilde sayıyı yerleştirmeye çalışır. Fakat bu format yeterli büyüklükte değil.

Diğer bir komik olay ise ve 'ın varlığıdır.

İşaret bir bit ile tutulduğundan dolayı tüm sayıların ve lı değerleri bulunmaktadır.

Çoğu durumda bu ayrım soruna anlaşılamaz. Çünkü operatörler ikisine de aynı şekilde davranır.

Testler: isFinite ve isNaN

Hatırlarsanız iki tane özel sayı vardı.

  • (ve ), bu sayı hersayıdan büyüktür, veya her sayıdan küçüktür.
  • ise bir hata göstergesidir.

Her ikisi de tipine aittirler, fakat “normal” sayı değildirler. Bundan dolayı bunların kontrolü için özel fonksiyonlar bulunmaktadır.

  • argümanı sayıya çevirir ve sayı olup olmadığını kontrol eder.

    Bu fonksiyona ihtiyacınız var mı? Sadece === NaN kullanılsa ? Malesef ihtiyaç var. kendi başına hiçbir şeye eşit değildir, hatta kendisine bile:

  • argümanı sayıya çevirir ve normal sayı ise değil ise döndürür:

Bazen karakterin sayı olup olmadığını kontrol için kullanılır:

Aklınızda bulunsun tüm boş veya sadece boşluk tuşu ile yazılan tüm değerler olarak kabul edilir 'de bu şekilde çalışır.

ile karşılaştırma

Özel bir dahili metod olan Object.is ile değerler gibi karşılaştırılabilir. İki durum için daha güvenlidir denebilir:

  1. ile çalışır: bu iyi
  2. ve farklıdır: ,neredeyse hiç kullanılmaz, ama yinede teknik olarak farklıdırlar.

Tüm durumlarda ile aynıdır.

Bu tür karşılaştırma genelde JavaScript içerisinde kullanılır. JavaScript içinde eğer algoritma iki değerin kesinlikle aynı olup olmadığını kontrol etmek istiyorsa kullanılır SameValue

parseInt ve parseFloat

veya kullanılarak sayıya çevirme sıkı bir çevirmedir. Eğer argüman sayı değilse hata verir:

Eğer başta veya sonda boşluk varsa bunlar görmezden gelinir.

Fakat gerçek hayatta değerler, veya gibi birim ekleri alabilir. Birçok ülkenin para birimi sona veya başa gelir. Bundan dolayı gibi değerler kullanıldığında önemli olan sayı bölümü olabilir.

ve tam olarak bunlar için kullanılır.

Karakter dizisinden sayıları “okuyabildikleri kadar” okurlar. Hata olduğu durumda sayıyı dönderir. tam sayı dönderirken küsüratlı sayı dönderir.

Eğer hiçbir basamak okunamazsa dönderirler.

in ikinci argümanı :

fonksiyonu isteğe bağlı olarak ikinci bir parametreye sahiptir. Bu sayı tabanını belirtir, böylece karakter olarak yazılmış hex sayılarını veya binary değerlerini de ayrıştırabilir.

Diğer matematik fonksiyonları

JavaScript dahilinde matematiksel fonksiyonların ve sabitlerin bulunduğu küçük bir kütüphane mevcuttur. Math

Birkaç örnek:

0 ile 1 (1 dahil değil) arasında rasgele sayı üretir.

/

Verilen değerlerden en büyüğünü veya en küçüğünü döndüren fonksiyon

'in sünü döndürür.

math objesi daha birçok fonksiyon ve sabit barındırmaktadır. Trigonometri de bunlara dahildir. Math objesi dökümantasyonu

Özet

Büyük sayıları yazmak için:

  • nin yanına kaç tane sıfır varsa onu yazın. Örneğin : = ün yanına tane 0 yaz demektir.
  • den sonra yazılan negatif sayı ise kaç tane sıfır varsa önüne bir koy ve değeri bu sayıya böl demektir.

Farklı sayı sistemleri:

  • Sayıları doğrudan hex olarak (), octal olarak() veya binary(ikili) () olarak yazmak mümkündür.
  • 236` aralığında olmalıdır ( 2 ve 36 dahil)
  • ise bir sayıyı karakter dizisine verilen tabanda yazmaya yarar.

ve gibi değerleri sayıya çevirme:

  • hafif çevirimler için kullanılabilir, karakter görene kadar sayıları tutar ve karakter görürse tuttuklarını geri dönderir.

Ondalık bölüm:

  • , , , veya kullanarak yuvarlayabilirsiniz.
  • Küsüratlarda olan sorunları sayılarla çalışırken her zaman aklınızda tutmalısınız.

Daha fazla matematik fonksiyonu:

  • Gerektiği zaman Math adresinden incelenebilir. Kütüphane çok küçük olsa da basit gereksinimleri karşılar.
ile birleştirilebilir boşluk kullanılmadan – olaylar kullanılmadığı sürece, yalnızca tamamlanana kadar blok çalışır (bkz. 3.23). kullanım: for(init_assignment;condition;step_assignment) bloğu – init_assignment ve step_assignment, karmaşık olmayan basit ifadelerdir geçerli: n0.val=4, sys2++, n0.val=sys24+3 geçersiz: n0.val=3+(sys24)-1 – (koşullar) soldan sağa doğru değerlendiren basit bir karmaşık olmayan boole karşılaştırmasıdır geçerli: (j0.val>75) geçersiz: (j0.val+1>75)
Örnek:
28wepo2Değeri/dizeyi EEPROM’a kaydedin
– EEPROM geçerli adres aralığı 0 ile 1023 arasındadır (1K EEPROM)
– sayısal değer uzunluğu: 4 bayttır, -2147483648 – 2147483647
– küçük endian düzeninde saklanan sayısal veri türü imzalı uzun tamsayı.
val[addr+3]16777216+val[addr+2]65536+val[addr+1]*256+val[addr] – dize içerik uzunluğu: .txt içeriği .txt-maxl +1 veya sabit uzunluktur +1
kullanım: wepo <attr>, <addr>
<attr>, değişken veya sabittir
<addr>, EEPROM’daki depolama başlangıç adresidir
wepo t0.txt,10 // t0.txt içeriğini 10 ila 10+t0.txt-maxl arasındaki adreslere yazar
wepo “abcd”,10 // 10 ila 14 arasındaki adreslere “abcd” sabiti yaz
wepo 11,10 // 10’dan 13’e kadar olan adreslerde sabit 11 yaz
wepo n0.val,10 // 10 ile 13 arasındaki adreslere n0.val değerini yaz29repo2EEPROM’dan değeri oku
– EEPROM geçerli adres aralığı 0 ile 1023 arasındadır (1K EEPROM)
– sayısal değer uzunluğu: 4 bayttır, -2147483648 – 2147483647
– küçük endian düzeninde saklanan sayısal veri türü imzalı uzun tamsayı.
val[addr+3]16777216+val[addr+2]65536+val[addr+1]*256+val[addr] – dize içerik uzunluğu: .txt içeriği .txt-maxl değerinden küçük veya boş değere ulaşılana kadar .
kullanım: repo<attr>, <addr>
<attr>, değişken veya sabittir
<addr>, EEPROM’daki depolama başlangıç adresidir
repo t0.txt,10 // adet .txt-maxl karakterlerini (veya boş olana kadar) 10’dan t0.txt’ye okur
repo n0.val,10 // adres 10’dan 13’e 4 bayt n0.val’e okur30wept2Belirtilen sayıda baytı MCU’dan Seri üzerinden EEPROM’a depolayın
– EEPROM geçerli adres aralığı 0 ile 1023 arasındadır (1K EEPROM)
– wept Şeffaf Veri Modunu kullanır (bkz. 1.16)
– seri arabellek ile sınırlı miktar (tüm komutlar+sonlandırmalar + veri < 1024) kullanım: wept <addr>,<qty>
<addr>, EEPROM’daki depolama başlangıç adresidir
<qty>, saklanacak bayt sayısıdır
wept 30,20 // seriden 30 ila 49 arasındaki EEPROM adreslerine 20 bayt yazar
// veri baytı, bayt değerinin ASCII metni değil, ham veri baytıdır.31rept2EEPROM’dan Seri üzerinden MCU’ya belirtilen sayıda baytı okuyun
– EEPROM geçerli adres aralığı 0 ile 1023 arasındadır (1K EEPROM)
kullanım: rept<addr>,<qty>
<addr>, EEPROM’daki depolama başlangıç adresidir
<qty>, okunacak bayt sayısıdır
rept 30,20 // 30 ile 49 arasındaki EEPROM adreslerinden seriye 20 bayt gönderir
// veri baytı, bayt değerinin ASCII metni değil, ham veri baytıdır.32cfgpio3Nextion GPIO’yu yapılandırma
kullanım: cfgpio <io>,<mode>,<comp>
<io>, genişletilmiş G/Ç pininin numarasıdır.
– PWM çıkış modunda geçerli değerler: 4 ila 7, diğer tüm modlar 0 ila 7.
<mode>,<io> tarafından seçilen pinin çalışma modudur.
– Geçerli değerler: 0-pull up girişi, 1-girişli bağlama, 2-push pull çıkışı,
3-PWM çıkışı, 4-açık tahliye çıkışı.
<mod> 1 olduğunda <comp> bileşeni .objname veya .id (aksi takdirde 0 kullanın)
– ciltleme modunda, Touch olayına yeniden bağlanmak için sayfanın her yenilenmesinden sonra cfgpio’nun bildirilmesi gerekir, en iyisi cfgpio’yu sayfa ön başlatma olayına koymaktır
cfgpio 0,0,0 // io0’ı pull-up girişi olarak yapılandırır. n0.val=pio0 olarak okuyun.
cfgpio 1,2,0 // io1’i push-pull çıkışı olarak yapılandırır, pio1=1 olarak yazar
cfgpio 2,1, b0 // io2’yi mevcut sayfa b0 ile bağlama girişi olarak yapılandırır.
// bağlama tetikleyicileri b0 Düşen kenarda basın ve b0 Yükselen kenarda bırakın
PWM modu için, görev döngüsünü cfgpio’dan önce ayarlayın: yani: %20 görev için pwm4=20.
cfgpio 4,3,0 // io4’ü PWM çıkışı olarak yapılandırır. pwmf=933 Hz’yi değiştirmek için.
// pwmf’yi değiştirmek, yapılandırılmış tüm PWM io4’ün frekansını io7’ye değiştirir33ucopy4Salt okunur. Etkin Protokol Yeniden Ayrıştırma modunda geçerlidir.
Seri arabellekteki verileri kopyalar.
Nextion etkin Protokol Yeniden Ayrıştırma modundayken, ucopy, seri arabellekten verileri kopyalar. Çoğu HMI uygulaması Protokol Yeniden Ayrıştırma gerektirmez ve tam olarak anlaşılmadıysa atlanmalıdır.
kullanım: ucopy <attr>,<srcstart>,<len>,<deststart>
<attr>, yazılabilir bir öznitelik olmalıdır, yani: t0.txt, va0.val
<srcstart>, sayısal bir değer olmalıdır, yani: 0
<len>, sayısal bir değer olmalıdır, yani: 4
<deststart>, sayısal bir değer olmalıdır, yani: 0
ucopy n0.val,0,2,0 // arabellek bayt 0,1’i n0.val’in 2 baytının altına kopyala
ucopy n0.val,0,2,2 // arabellek baytları 0,1’i n0.val’in üst 2 baytına kopyala
ucopy n0.val,0,4,0 // arabellek baytlarını 0,1,2,4’e kopyala n0.val
ucopy t0.txt,0,10,0 // 0’dan 9’a arabellek baytlarını t0.txt’ye kopyalayın34move7Bileşeni taşıma.
kullanım: <comp>, <x1>,<y1>,<x2>,<y2>,<priority>,<time>
<comp>, bileşen adı veya bileşen kimliğidir
<x1>, başlangıç X koordinatıdır
<y1>, başlangıç Y koordinatıdır
<x2>, hedef X koordinatıdır
<y2>, hedef Y koordinatıdır
<priority>, 0 ile 100 arasında bir değerdir, 100 en yüksek önceliktir
<time>, ms cinsinden zamandır.
t0’ı 100,150 konumuna taşımak için t0,-30,-30,100,150,95,120 // 120ms hareket ettirin
t1’i 200,150 konumuna taşımak için t1,-30,-30,200,150,90,180 // 180ms hareket ettirin
t2’yi 300,150 konumuna taşımak için t2,-30,-30,300,150,100,150 // 150ms hareket ettirin
// örnek öncelikler verildiğinde, önce t2 hareket eder, sonra t0 ve son olarak t135play3Seçili Kanalda ses kaynağını çaldırır
kullanım: play <ch>,<resource>,<loop>
<ch>bileşen adı veya bileşen kimliğidir
<resource>, Ses Kaynağı Kimliğidir
<loop>, döngü olması için 1 olmaması için 0
Notlar: Oynatma talimatı, ses oynatmayı yapılandırmak ve başlatmak için kullanılır. kanalı kontrol etmek için audio0 ve audio1 kullanılır. Ses çalma geneldir ve sayfalardan ayrılıp değiştirildikten sonra çalma devam eder, sayfadan çıkarken sesin durmasını istiyorsanız bunu sayfa ayrılma olayında yapmalısınız
1,3,0// döngü olmadan kanal 1’de kaynak 3’ü oynat
0,2,1// döngü ile kanal 0’da kaynak 2’yi oynat36twfile2Dosyayı Seri üzerinden aktarır
kullanım: twfile <filepath>,<filesize>
<filepath>, hedef yol ve dosya adı alıntısı kapsüllenmiş metindir
<filesize>,dosyanın bayt cinsinden boyutudur.
twfile “ram/0.jpg”,1120// jpg’yi seri üzerinden ram/0.jpg boyutuna 1120 bayta aktarın
twfile “sd0/0.jpg”,1120// jpg’yi seri üzerinden sd0/0.jpg boyutu 1120 bayta aktarır37delfile1Harici dosyayı siler.
kullanım: delfile <filepath>
<filepath>, alıntı içine alınmış metin olarak hedef yol ve dosya adıdır
delfile “ram/0.jpg”// aktarılan dosyayı kaldır ram/0.jpg
delfile “sd0/0.jpg”// aktarılan dosyayı kaldır sd0/0.jpg38refile2Harici dosyayı yeniden adlandırın.
kullanım: <oldname>,<newname>
<oldname>, alıntı kapsüllenmiş metin olarak kaynak yolu ve dosya adıdır
<newname>, alıntı içine alınmış metin olarak hedef yol ve dosya adıdır
“ram/0.jpg”,”ram/1.jpg”// dosyasını ram/0.jpg olarak yeniden adlandırın ram/1.jpg
“sd0/0.jpg”,”sd0/1.jpg”// dosyasını yeniden adlandırın sd0/0.jpg olarak sd0/1.jpg olarak yeniden adlandırın39findfileAdlandırılmış harici dosya varsa Dosya Bul komutu
kullanım: findfile <pathfile>,<result>
<pathfile>, alıntı kapsüllenmiş metin olarak kaynak yolu ve dosya adıdır
,<result>, saklanacak sonucun sayısal bir özelliğidir.
Bulma başarısız olursa 0 sonucunu, bulma başarılıysa 1 sonucunu döndürür.
findfile “ram/0.jpg”,n0.val// dosyanın olup olmadığını kontrol edin, sonucu n0.val’de saklayın
findfile “sd0/0.jpg”,sys0//dosya olup olmadığını kontrol edin, sonucu sys0’da saklayın40rdfileDosya içeriğini oku ve içeriği seri olarak çıkar
kullanım: rdfile <pathfile>,<offset>,<count>,<crc>
<pathfile>, alıntı kapsüllenmiş metin olarak kaynak yolu ve dosya adıdır
<offset>,dosyanın başlangıç uzaklığıdır
<count>,döndürülecek bayt sayısıdır (0 ise nota bakın)
<crc>, bir seçenektir (0: crc yok, 1: Modbus crc16, 10: crc32)
Sayı 0 ise, 4 baytlık dosya boyutu küçük endian sırasına göre döndürülür.
rdfile “ram/0.jpg”,0,10,0// dosyanın ilk 10 baytını gönder, CRC yok, 10 bayt.
rdfile “sd0/0.jpg”,0,10,1// dosyanın ilk 10 baytını gönder, MODBUS CRC, 12 bayt.
rdfile “sd0/0.jpg”,0,10,10// dosyanın ilk 10 baytını gönder, CRC32, 14 bayt.41setlayer2Bileşen Katmanını Ayarlar
kullanım: setlayer <comp1>,<comp2>
<comp1>, katmanları değiştirmesi gereken bileşenin bileşen kimliği veya nesne adıdır
<comp2>, bileşen kimliği veya comp1’in yukarıya yerleştirildiği nesne adıdır
Not: 255’lik comp2 değerinin kullanılması, comp1’i en üst katmana yerleştirir.
setlayer t0,n0//n0’ın katmanının üstüne yerleştirir
setlayer t0,255//t0’ı en üstteki katmana yerleştir
setlayer n0,3//n0’ı 3. katmana yerleştirin42newdir1Yeni bir dizin oluştur
kullanım: newdir <dir>
<dir>, oluşturulacak dizindir
Not: dizin adı eğik çizgi ile bitmelidir /
newdir “sd0/data/”//data adlı dizin oluştur
newdir “sd0/202003/”//202003 adlı dizin oluştur43deldir1Bir dizini kaldır
kullanım: deldir <dir>
<dir>, silinecek dizindir
Not: dizin adı eğik çizgi ile bitmelidir /
deldir “sd0/data/”//data denilen dizini kaldır
deldir “sd0/202003/”//202003 adlı dizini kaldır44redir2Bir dizini yeniden adlandırır
kullanım: redir <srcdir>,<destdir>
<srcdir>, yeniden adlandırılacak dizindir
<destdir>, yeniden adlandırılan dizinin yeni adı
Not: dizin adları eğik çizgi ile bitmelidir /
“sd0/data/”,”sd0/data2/”//verileri data2 olarak yeniden adlandır
yeniden yönlendirme “sd0/202003/”,”sd0/2004/”//202003’ten 2004’e yeniden adlandır45finddir2Dizin olup olmadığını test eder
kullanım: finddir <dir>,<attr>
<dir>, varsa test edilecek dizindir
<attr>, sonucun saklanacağı sayı değişkeni
Not: dizin adları eğik çizgi ile bitmeldir /
Dizin varsa 1, bulunamazsa 0 döndürür
finddir “sd0/data/”,va0.val//dizin verilerini bul, va0.val ile sonuçlanır
finddir “sd0/2003/”,sys0//find directory 2004, sys0 ile sonuçlanır46udelete1Seri Arabelleğinden baytları kaldırır
kullanım: udelete <qty>
<qty>, Seri Arabellek’in başlangıcından kaldırılacak bayt sayısıdır
Not: Protokol Yeniden Ayrıştırma Modunun (recmod) kullanılabilmesi için etkin olması gerekir. Çoğu HMI uygulaması Protokol Yeniden Ayrıştırma gerektirmez ve tam olarak anlaşılmadıysa atlanmalıdır.
udelete 24//Tamponun ilk 24 baytını sil
udelete 10//Buffer’ın ilk 10 baytını sil47crcrest2CRC’yi Sıfırla ve Başlat
kullanım: crcrest <crctype>,<initval>
<crctype>, 1 olmalıdır (Modbus CRC16 tipi)
<initval>, crc başlangıç değeridir (genellikle 0xFFFF)
crcrest 1,0xFFFF// crc’yi sıfırla ve başlat48crcputs2Değişken veya sabit için CRC’yi toplar
kullanım: crcputs <attr>,<lenght>
<attr>, öznitelik veya sabittir
<lenght>, 0 (varsayılan) veya belirtilen uzunluktur
crcputs va0.val,0//va0.val için crc biriktir (otomatik uzunluk)
crcput’lar va1.txt,3//va1.txt’nin ilk 3 baytı için crc biriktirir49crcputh1Hex dizesi için CRC biriktirin
kullanım: crcputh <hex>
<hex>, hex karakter dizisidir
Not: onaltılı dizedeki her bayt, bir boşlukla ayrılmış baytlar olmak üzere 2 onaltılı basamağa sahiptir.
crcputh 0A//bayt 0x0A için crc biriktir
crcputh 0A 0D//bayt için crc biriktir 0x0A 0x0D50crcputu2Seri Arabellek üzerinde CRC biriktirir
kullanım: crcputu <start>,<qty>
<start>, biriktirilecek Seri Arabellek başlangıç baytıdır
<qty>, başlangıç baytı dahil olmak üzere toplanacak bayt sayısıdır
Not: Protokol Yeniden Ayrıştırma Modunun (recmod) kullanılabilmesi için etkin olması gerekir. Çoğu HMI uygulaması Protokol Yeniden Ayrıştırma gerektirmez ve tam olarak anlaşılmadıysa atlanmalıdır.
crcputu 0,10//Seri Tamponun ilk 10 baytı için crc biriktirir
crcputu 10,10//ikinci 10 bayt için crc biriktir 0x0A 0x0D51spstr4Bölünmüş dize
kullanım: spstr <src>,<dest>,<key>,<index>
<src>, src .txt özniteliği veya dize veri sabitidir
<dest>, sonucun depolandığı .txt özelliğidir
<key>, çift tırnak içine alınmış metin sınırlayıcıdır
<index>, döndürülecek sıfır dizinli yineleme sonucudur
spstr “ab3cd3ef3ghi”,va1.txt,”3″,0//ilk sınırlayıcı oluşmadan önce ab dizesini döndürür
spstr “ab3cd3ef3ghi”,va1.txt,”3″,2//ikinci sınırlayıcı oluştuktan sonra ef dizesini döndürür
ile birleştirilebilir boşluk kullanılmadan
– yuvalanmış “if” ve “else if” desteklenir.
kullanım: if koşulu bloğu [else if koşulu bloğu] [else bloğu]
– (koşullar) soldan sağa doğru değerlendiren basit bir karmaşık olmayan boole karşılaştırmasıdır
geçerli: (j0.val>75) geçersiz: (j0.val+1>75) geçersiz: (j0.val<now.val+60)
Örnek:
if(t0.txt==”123456″)
{
page 1
}
if(t0.txt==”123456″

Branner 8 hakkında yardım

merhabalar,

hex dosyasını asm'e çevirmek için deneme yanılma yoluyla çok kolay bir yöntem buldum ve işe yaradı.
ic-prog programında hex kodunu açtım ve asm sekmesine geçince Program asm oldu. oluşturduğum asm dosyasında retlw olan yerleri tabelada göstermek istediğim değerlerle değiştirip yeniden derleyerek branner 8 ile pic'e yazabilirsem sonuca ulaşmış olacağım.

pic'ten okuduğum ve asm yaptığım kodu mpasmwın ile derlediğimde 17 hata verdi, hatalar PORTB, PORTA, TRISB, TRISA, RP0 gibi değerleri kabul etmemiş olması. sanırım bunun için bu değerlere karşılık gelen adres değerlerini yazarsam bu sorun da çözülecek. belirttiğim değerlere karşılık gelen adresleri 16f84A için söyleyebilir misiniz?

birde piyasada K150 ve pic kit serisi programlama cihazları çok var sanırım. branner 8 ile aynı çalışan başka karta göre revize edip onun programını kullanamaz mıyız?

şu an önemli sorun picte bulunan kodu okuyabiliyor ama pice kod yazamıyor olmam. usb-burn'de ayarları doğru yapmam konusunda yardımcı olabilecek kimse var mı?

inanın google ve youtube de kaç gündür araştırıyorum. çok eskide kaldığım için bulduğum bilgilerle bu kadar yapabildim. yani konuyu buraya son çare olarak açtım.

oluşan asm kodu da bu şekilde;


; Generated by WinDis84, (c) Nigel Goodwin 1998.

LIST P=16F84, F=INHX8M
include "P16FXX.inc"
ORG 0x0000

CLRF PORTB
CLRF PORTA
BSF STATUS , RP0
CLRF TRISA
CLRF TRISB
BCF STATUS , RP0
CLRF 0x0C
CLRF 0x0D
CLRF 0x0E
CLRF 0x0F
Label_0005 MOVLW 0x00
MOVWF 0x0C
Label_0004 INCF 0x0C , f
MOVLW 0x32
MOVWF 0x0F
Label_0003 CLRF PORTB
MOVLW 0x21
MOVWF 0x0E
NOP
MOVLW 0x03
MOVWF PORTA
NOP
MOVLW 0x05
MOVWF PORTA
NOP
MOVF 0x0C , W
MOVWF 0x0D
Label_0002 MOVF 0x0D , W
CALL Label_0001
MOVWF PORTB
NOP
INCF 0x0D , f
CLRF PORTB
MOVLW 0x02
MOVWF PORTA
MOVLW 0x04
MOVWF PORTA
DECFSZ 0x0E , f
GOTO Label_0002
DECFSZ 0x0F , f
GOTO Label_0003
GOTO Label_0004
Label_0001 ADDWF PCL , f
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x0E
RETLW 0x1F
RETLW 0x3F
RETLW 0x7E
RETLW 0xFC
RETLW 0x7E
RETLW 0x3F
RETLW 0x1F
RETLW 0x0E
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x0E
RETLW 0x11
RETLW 0x21
RETLW 0x42
RETLW 0x84
RETLW 0x42
RETLW 0x21
RETLW 0x11
RETLW 0x0E
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0xFF
RETLW 0xFF
RETLW 0xDB
RETLW 0xDB
RETLW 0xFF
RETLW 0x66
RETLW 0x00
RETLW 0xFF
RETLW 0xFF
RETLW 0xDB
RETLW 0xDB
RETLW 0xC3
RETLW 0x00
RETLW 0x03
RETLW 0x03
RETLW 0xFF
RETLW 0xFF
RETLW 0x03
RETLW 0x03
RETLW 0x00
RETLW 0xFD
RETLW 0xFD
RETLW 0xC0
RETLW 0xC0
RETLW 0xFD
RETLW 0xFD
RETLW 0x00
RETLW 0xFF
RETLW 0xFF
RETLW 0xC0
RETLW 0xC0
RETLW 0xC0
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x0E
RETLW 0x11
RETLW 0x21
RETLW 0x42
RETLW 0x84
RETLW 0x42
RETLW 0x21
RETLW 0x11
RETLW 0x0E
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x0E
RETLW 0x1F
RETLW 0x3F
RETLW 0x7E
RETLW 0xFC
RETLW 0x7E
RETLW 0x3F
RETLW 0x1F
RETLW 0x0E
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
RETLW 0x00
GOTO Label_0005
RETURN
ADDLW 0xFF
ADDLW 0xFF
ADDLW 0xFF
ADDLW 0xFF
ADDLW 0xFF
ADDLW 0xFF
ADDLW 0xFF

ORG 0x2000
DATA 0x0F
DATA 0x0F
DATA 0x0F
DATA 0x0F

ORG 0x2007
DATA 0x1F

ORG 0x2100
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF

END
hata dosyası
1640058830148.png

1640058830148.png

 

nest...

batman iftar saati 2021 viranşehir kaç kilometre seferberlik ne demek namaz nasıl kılınır ve hangi dualar okunur özel jimer anlamlı bayram mesajı maxoak 50.000 mah powerbank cin tırnağı nedir