Bar uygulaması için yardım???

Başlatan davul42, 01 Nisan 2011, 16:15:34

davul42

arkadaşlar bu basit bir bar uygulaması ama ben çözemedim anlayamadığım komutlar var(Rep,değişken // 2) gibi bu yüzden zorlandım acaba bu bar uygulamasından biraz bahsedermisiniz???
ana:
If artbut=0 Then barval=barval+1
If barval>32 Then barval=32
If azbut=0 Then barval=barval-1
If barval=255 Then barval=0
GoSub lcd_bar
DelayMS 200
GoTo ana

lcd_bar:
bar1 = barval/2
bar2 = barval // 2
pad = 16-bar2
Print At 1,1, "DEGER=",DEC2 barval
Print At 2,1, Rep $01bar1,Rep $00bar2,Rep " "pad+1
Return
End

t2

#1
bar1 = barval/2
     
kaç tane 2li çubuk  çizilsin bunu hesaplıyoruz. yani bar1 2li çubuk karakterinin sayısıdır.
bar2 = barval // 2

Burada ise 2ye bölümünden kalan teksayıyı alıyoruz. o kadar sayıda tek çubuk karakteri çizilecek
pad = 16-bar2

Sayıya uygun çubukları çizdik. Fakat SATIRIN geri kalan kısmını boş karakterle veya ... gibi  bir karakter ile doldurmalıyız. yoksa bir önceki çizimler silinmemiş olur. Mesela volum kontrolü yapıyorsanız sesi kısarsınız ama ekranda önceki çubuklar kalır. halbuki sıfırdan yükseltirken böyle bir sorun olmaz.


Özetleyecek olursam çizilecek  sayımız 3 olsun

bar1 = barval/2   ; =   1  tane 2li çubuk çiz
bar2 = barval // 2 ; =  1 tane tekli çubuk çiz
pad = 16-bar2   

;  pad satırın gerikalanına çizilecek boş karakter sayısı
; aslında yanlış olmuş pad= 16-(bar1+bar2) olmalı

https://www.picproje.org/index.php/topic,30894.msg214891.html#msg214891

https://www.picproje.org/index.php/topic,19785.msg133284.html#msg133284





http://www.google.com.tr/search?hl=tr&safe=off&q=LCD+BARGRAPH+PROTON&aq=f&aqi=&aql=&oq=

davul42

şimdi hocam mesela bir satırdaki bir haneye ben ortasından nokta başlatarak büyültmeye çalışcam hanenin tamamı bir kare olana kadar ..yani görsel olarak anlatırsam bir çiçeğin açılması gibi... aynı zamanda tmr0 da kullanıyorum fakat ben
hem for next döngüsünü denedimyani;
for sayac=0 to 610 step 61  'her 1 saniye=61  saydığında
print at 2,15, 2
delayms 10
print at 2,15,3
delayms 10
.........
next
hemde repeat until döngüsünü denedim;
repeat                          'tekrar et
print at 2,15, 2
delayms 10
print at 2,15,3
delayms 10
.........
until dakika=0                'dakika=0 olana kadar

acaba başka bi yöntemi varmı????


t2

bu karakterler 7x5 noktadan oluşuyor olması lazım. bu durumda sana 4 tane özel karakter lazım
1 -  ortada çizgi
2-   ortada 3 çizgi
3-   ortada 4 çizgi
4-   ortada 5 çizgi yani tam  dolu kare.


karakterlerin tamam. bu karakterleri az bekleterek aynı konuma yazarsan ortadan açılan çiçek gibi olur.

Çizgiyi beğenmediysen içi boş kare yaparsın.  karakterin tanımlamak için ufak, bedava programlar vardır onlar kullanılır.

davul42

#4
ben her bir bar için tam karakter $1f düşünüyorum toplam 2*16 lcd ye yani her bir haneye dolacak şekilde ilerliyecek ozaman barval/2 veya barval //2 işlemlerine gerek yok öyle değilmi??


birde kafama takıldı özür dilerim ama "rep" komutunun anlamını bilen varmı:)?

t2

rep, repeat demektir.  print içinde kullanılır. karakteri kaç defa tekrar edeceğini bildirir.

tam karakter basacaksanız barval/2 veya barval //2  kısımlarına gerek yok. diyelim  5 değerini göstereceksiniz,  satırın başından itibaren 5 tane dolu kare basılır.