PicBasic ile Bit eşlem sorunu

Başlatan Mucit23, 11 Nisan 2011, 18:11:06

Mucit23

Merhaba arkadaşlar. Konu başlığını yanlış açmış olabilirim. Sorunumla ilgili en uygun başlık bu olurdu herhalde :)
Şöyle bir durum var. Pic16F628'in PORTB'si komple giriş olarak kullanıyorum ve portbyi ilk 4 bit ve son 4 bit olmak üzere ikiye bölmüş durumdayım. Bu ikikısıma iki ayrı kaynaktan farklı veriler geliyor.
Benim yapmak istediğim şey ise şudur.
Portb ninilk 4 bitinin değerini SAYI1, Son4 bitinin değerini ise SAYI2 değişkenine yüklemek istiyorum. Yani Ssayı1 in değerine baktığımda portbnin ilk 4 bitinin değerini ve sayı2 ye baktığımda portbnin son 4 bitinin değerini görmek istiyorum.
Bunu tanımlamalar kısmında aşağıdaki gibi bişey yaparak yapmaya çalıştım.

SAYI1.0 VAR PORTB.0
SAYI1.1 VAR PORTB.1
SAYI1.2 VAR PORTB.2
SAYI1.3 VAR PORTB.3

SAYI2.0 VAR PORTB.4
SAYI2.1 VAR PORTB.5
SAYI2.2 VAR PORTB.6
SAYI2.3 VAR PORTB.7

Normalde her değişkenin herhangi bir bitine ulaşabiliyorum fakat yukarıdaki gibi bir eşleme yapamıyorum. Böyle bir komutu picbasic desteklemiyor herhalde. Bunu nasıl yapabilirim

My75

SAYI1=PORTB & %00001111
SAYI2=PORTB & %11110000

Bu şekilde maskeleme ile olması lazım hatırladığım kadarı ile..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

Ruzgarbey

merhaba. ilk 4 bit ile son 4 biti ben şu şekilde hatılıyorum.
SAYI1=PORTB & 00001111
SAYI2=PORTB >>4
umarım doğru yazmışımdır. saygılarımla..
Hayatta En Hakiki Mürşid İlimdir. M.K. ATATÜRK

Mucit23

Arkadaşlar Teşekkür ederim dediğiniz gibi oldu. Çok sağolun

Mucit23

Arkadaşlar böyle olmadı. Şimdi bir sorun farkettim. Sayı1 ve sayı2 değişkenlerinin değerini proteusta gözlemliyorum. Normalde portbnin ilk 4 biti binary sırasıyla desimal olarak 0,1,2,3,4,5,6,7,8,9 değerlerini alıyor aynı şekilde sayı2 de öyle. Herşey tamam portbinin ilk 4 bitinin değerini sırasıyla arttırıyorum. Sayı 7 olana kadar normal fakat fakat sayı 8 olunca sayı1 değişkenin değeri 0 oluyor ve ondan sonra değişik değerler almaya başlıyor. Bana kalırsa yine portbnin son 4 bitinden bağımsız olarak veri alınmıyor. Yani portbnin son 4 bitine rast gele değerler veriyorum . Bununla birlikte portbnin ilk 4 bitinin yani sayı1 inde değeri değişiyor. Bunu nasıl çözebiliriz.