16 bit veriyi 8 bit 8bit olarak kaydetmek

Başlatan turkoglu0051, 20 Ekim 2012, 17:42:18

turkoglu0051

merhabalar
16 bitlik gelen bir veriyi 8 bit olarak ayırmak istiyorum ve veriyi 8 bit olarak kaydetmet nasıl olacak.
mesela:1100111011001110 gibi bir veriyi bozulmadan 8 bit olarak almak istiyorum.
kolya gelssin.

F®T

16 bitlik bir verinin sayı değeri 8 bite nasıl sığar.zor.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

greatgonzo

#2
bir bardağa bir bardak su sığar ikincisi mümkün değil. Veri ne taşıyor ? Bir ihtimal bir protokol gibi bi'şi uydurulabilir. Ama dolu dolu 16 bit 8 e indirgenemez. Ama 8 er bit olarak işlem yapabilirsinki basicte word değişkeni yan, 16 bitlik değerler gerçekte 2 adet 8 bitlik değerden oluşur. Pic lerin hafıza birimleride byte olarak ayrılmıstır. Bu sebepten dolayı 16 bit değişken gerçekte 2 X 8 bitten oluşur. Mesela bilgi değişkenin word tipi bir değişkense. bilgi.byte0  bilgi.byte1 olarak yada bilgi.lowbyte ,bilgi.highbyte olarak ayrılabilir.  Eeprom kaydındada o şekilde yazabilirsin. Bu konuda başka tartışmalar oldu forumda aratırsan bulabilirsin.

İyi çalışmalar...

ete

16 lirayı bozulmadan 8 lira haline nasıl getirirsin bilemiyorum. Öyle bir şey olsa borçlar kolaylıkla ödenebilirdi.
16 bitlik sayı şayet gerçekten 16 bit ise maksimum değeri 65535 olur. 8 bitlik sayılar ise maksimum 255'e kadar değer alabilirler. Elindeki sayı 65535 ise bunu nasıl 255 yapıp da bu sayı gerçekte 65535 dir diyebilirsinki. Olmaz böyle bir şey.
Ya farklı bir şey anlatmaya çalışıyorsun biz anlamıyoruz yada gerçekten 16 bitlik sayıyı 8 bit haline getirmek istiyorsun. Bu mümkün değil unut gitsin.

Ete

pwm.c

Konu başlığından anladığım kadarıyla 16 bitlik veriyi 8+8 bit olarak kaydetmek istemiş.
bunun için HIGHBYTE ve LOWBYTE komutlarını kullanabilirsin.

örnek:
SAYI VAR WORD '16 bitlik sayımız
HBYTE VAR BYTE '8 bit yüksek
LBYTE VAR BYTE '8 bit düşük

SAYI=4096 'örnek bir değer yükledik.
LBYTE=SAYI.LOWBYTE '8 bitlik düşük değerimizi ayırdık
HBYTE=SAYI.HIGHBYTE '8 bitlik yüksek değerimizi ayırdık
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

turkoglu0051

pwm.c arkadasıma teşekkürler
konu net olarak anlamış elletine sağlık.

Powered by EzPortal