Pic basic pro sorun ??

Başlatan sayment, 20 Temmuz 2010, 00:52:16

sayment

Pic basic pro'dan anlayan varmı acaba? bir sorum olacak..

muhittin_kaplan

Burada Epey Bir Anlayan Bulunur.

RcALTIN

Alıntı yapılan: sayment - 20 Temmuz 2010, 00:52:16
Pic basic pro'dan anlayan varmı acaba? bir sorum olacak..

Sorun ve sorularınızı direkt olarak belirtirseniz daha çabuk yanıt bulursunuz....
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !

sayment

Alıntı yapılan: FxDev - 20 Temmuz 2010, 01:08:21
Alıntı yapılan: muhittin_kaplan - 20 Temmuz 2010, 01:02:58
Burada Epey Bir Anlayan Bulunur.

Sorusunu sorucak, iyi kötü cevap alacak, sonra bir daha yüzünü gören cennetlik.
Pic Basic Pro'dan anlayan olmasa be mübarek kocaman "Picproje.org Elektronik Sitesi » DERLEYİCİLER » PICBasicPro" başlığı neden olsun.


Hoca neden hemen cellaleniyorsun ki ? Hem nerden biliyorsun bir daha girmeyeceğimi ? Daha ilk defa mesaj atıyorum niye böyle karşılandık pek anlam veremedim.Neyse kimseye saygısızlık yapacak değiliz kusura bakmayın.... Sorum şöyle:

Bir döngü oluşturmak istiyorum,döngünün tekrar sayısı ile orantılı olarak değişkenin içerisindeki sayının tekrarlanan dongu sayı ile aynı bitini herhangi bir pottan vermeye çalışıyorum ama program kabul etmiyor.Kodları vereyim daha açıklayıcı olur.

rakam = $f5
FOR  a =0 to 7
porta.0 = rakam .a
gosub puls
next a

böyle yazdımğımda kabul etmiyor yada rakam.[a] yazıyorum gene kabul etmiyor.Ama rakam.0 yada rakam.4 gibi yazdığımızda o bite denk düşen değeri porta yolluyor.Yazım yanlışımı yapıyorum acaba doğrusu nedir?Teşekkür ederim...

muhittin_kaplan


muhittin_kaplan

dim Rakam=&0f
for Rakam=0 to 7
  select case rakam
  case 0
    portb.0=rakam.0
  case 1
    portb.0=rakam.1
  case 2
    portb.0=rakam.2
  case 3
    portb.0=rakam.3
  case 4
    portb.0=rakam.4
  case 5
    portb.0=rakam.5
  case 6
    portb.0=rakam.6
  case 7
     portb.0=rakam.7
endselect
next

sayment

Alıntı yapılan: muhittin_kaplan - 20 Temmuz 2010, 10:03:56
dim Rakam=&0f
for Rakam=0 to 7
  select case rakam
  case 0
    portb.0=rakam.0
  case 1
    portb.0=rakam.1
  case 2
    portb.0=rakam.2
  case 3
    portb.0=rakam.3
  case 4
    portb.0=rakam.4
  case 5
    portb.0=rakam.5
  case 6
    portb.0=rakam.6
  case 7
     portb.0=rakam.7
endselect
next

Hocam teşekkür ederim CASE kulllanmadan manuel olarakta gönderebiliyorum.Söyle yapıyorum onuda:

portb.0 = rakam.0
gosub puls   // bu satır gerekli her bilgiden sonra puls yollamam lazım
portb.0 = rakam.1
gosub puls
portb.0 = rakam.2
gosub puls
portb.0 = rakam.3
gosub puls
portb.0 = rakam.4
gosub puls
portb.0 = rakam.5
gosub puls
portb.0 = rakam.6
gosub puls
portb.0 = rakam.7
gosub puls

Böyle olunca program çok uzuyor ve bu sadece bir değişken için yazdığımız program.8 bit boyutunda 5 tane değişken göndereceğim böyle yani 8x5=40 bit (40 satır kod) her bitten sonrada puls gondermem lazım bi 40 satırda o.Sırf bit göndermek için 80 satır kullanmış oluyoruz.Program çok büyüyor o yüzden böyle bir döngü ile halletmek istedim.

muhittin_kaplan

benim anladığım kadarıyla siz;
değişkenin sırasıyla bitlerini portb.0 ından göndermek istiyorsunuz.
sağa bir çevirerekte yapabilirsiniz
basla:
dim deger as byte
dim Say As byte
deger=$f0
for say=0 to 7
portb.0=deger.0
gosub puls
deger=deger >> 1
next

olacakmı bir deneyiniz. ben denemedim

sayment

Mantıklı teşekkür ederim bir deneyim.

sayment

Oldu çalışıyor teşekkür ederim emeğinize sağlık...

ete

Mesajı yeni gördüm.

Daha kolay yolu var bu işin.

rakam = $f5
FOR  a =0 to 7
porta.0 = rakam .0[a]
gosub puls
next a

şeklinde yazarsanız istediğiniz olur.
PBP da 8 bitlik değişkenin bitlerine index değişkeni kullanarak ulaşmanın formatı
DEGISKEN.0[index]  şeklindedir. Her nekadar önce sıfırncı biti göstersekde yanında yer alan index değişkeni işi çözmektedir.

Yada şöyle de yapılabilir DEGISKEN.Bit0[Index]
Bu formata uygun yukarıdaki örnek şöyle yazılabilirdi;
rakam = $f5
FOR  a =0 to 7
porta.0 = rakam .Bit0[a]
gosub puls
next a


Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

sayment

Ete hocam teşekkür ederim ilgilendiğiniz için...