Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

INVERT MANTIĞI?????

Başlatan My75, 17 Şubat 2007, 01:05:18

My75

Bir türlü içinden cıkamadım..Benim bildiğim invert biti terslemek oluyor peki neden tersin tersi düz olmuyor?????

terslenmiş kod : 00000001 yani hex01 dec 001
olması gereken: 11111110 yani hexFE dec 254
ama olan         : 01111111 yani hex7F dec 127

Bir kodu tersleyip aynı kodu tekrar terslersek normal kodu almazmıyız ama olmuyor...Bu konuda elbet tecrübeleriniz olmuştur yorum lütfen...
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

OG

invert? hangi komutla?

A=255-x (%11111111-%xxxxxxxx)
A, x'in invertu oldu

A=%11111111-%00000001
A=%11111110

Tekrar yaparsan düzelir

A=%11111111-%11111110
A=%00000001
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Ziya

Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

My75

Hocam bende anlamadım...80C32 tx çıkışında hex inverter var(4069) ,bu hex inverter çıkışındaki veriyi isis compim ve virtual terminal aracılıgıyla tespit edip 16F628'e programladım..Aynı şekil 16F628 tx cıkısındaki komutu hex inverter cıkısına verdim ve veriyi gönderdiğim zaman sorunsuz olarak cihaz çalıştı..Ben orjinal veriyi 16F628'e yükleyip çıkışını invert edip çalıştırmak istiyorum ama sorun burda ne yaptımsa invert edilmiş verinin normal halini bulamadım...

invert olarak okudugum veri 6 bit: 01 55 FE 55 FE F2 binary olarak terslediğim zaman mantıklı birsey cıkıyor: FE AA 01 AA 01 0D bu veri benim için mantıklı olan çünkü 1 nolu cihaza ait olan kod bu,2 nolu cihazdan aldıgımda ise 01...02 oluyor...Ama tersleyince baska bir kod cıkıyor tespit ettiğim verinin yanından bile gecmiyor,her türlü denedim ama çözemedim..Ziya hocam bahsettiğiniz olayı biraz acarmısınız...Tesekkürler..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

Ziya

Alıntı yapılan: "My75"...Ziya hocam bahsettiğiniz olayı biraz acarmısınız...
Terslemek istediğiniz sayıyı 0xFF ile XOR işlemine tabi tutacaksınız. OG hocamın verdiği mantık ta güzelmiş. Her ikisinde de iki komut adımında işlem tamam.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

My75

OG hocam anladıgım terslemek istedigimiz sayıyı binary 255'den cıkaracagız??Desimal olarakda gecerlimi bu?? Yada bana 01 55 FE 55 FE F2 hex kodu bir örnekle acıklarmısınız?? Az önce bu iş için bir program yazdım,6 adet değişken içerisinde yukarıdaki kod olusuna kadar sayıyor ve kodu yakaladıktan sonra gösteriyor..Tersleyip yaptım 0-255 arasında görmedi anlam veremiyorum bir türlü..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

OG

Sen değer formatlarını karıştırmış olmayasın, öyle ise sonuç hatalı olacaktır. Ayrıca bu yazdığın bit değil malum 6 adet byte dır. Byte içindeki 8 bit terslenir. Bit tersleme dediğin için dikkatini çekmek istedim.

01 55 FE 55 FE F2

Her bir byte ayrı ayrı terslenir

sayi1=$01 (hexadecimal format)
ters_sayi1=$FF-$01
veya
ters_sayi1=255-sayi1 (Decimal format)



sayi2=$55 (hexadecimal format)
ters_sayi2=$FF-$55
veya
ters_sayi2=255-sayi2 (Decimal format)


gibi.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

XX_CİHAN_XX

255 ten terslemek ıstedıgın sayıyı cıkarabılırsın yada 0xFF ile xor yapabilirsin benim tercihim genelde xor oluyor...
Yapmaya calıstıgın kodları bır koy ıstersen gercı basıc ten cok anlamam ama anlayan arkadaslarla bırlıkte sorunun sebebını bulabılırız...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

My75

OG hocam bahsettiğiniz olayı anladım uyguladım oldu,aynı sonucu binary tersleyerekde alıyorum aynı sonuc cıkıyor ama hex inverter ile yaptıgımda olmuyor...01 55 FE 55 FE F2 verisini sizin yöntemle yada binary tersleyerek yaptıgımda FE AA 01 AA 01 0D olarak alıyorum mantık bunu söylüyor ama bu işi 4069 inverter ile yaptıgımda olmuyor,neden olmuyor bunu bulamadım,ters çevirip diğer taraftanmı okuyor dedim bir yere kadar tutuyor gerisi baska birsey...Derdim bu hocam 4069 ile tersleyip 01 55 FE 55 FE F2  kodunu elde etmem lazım..İsisde deneyin dediğim gibi oluyor...Tesekkürler
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

OG

Sen isis dosyasını gonder bakalım.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

My75

http://rapidshare.com/files/16927978/TEST.rar.html

Buyrun hocam olayı anlamak için bu basit programı yazdım...

Araya 4069 konulacagı zaman rx.bas dosyasında FE AA 01 AA 01 0D olarak değiştirmek lazım tersi oldugu için,değiştirdim görmüyor...
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

OG

4069 un buradaki fonksiyonunu anlayamadım, gönderdiğin data hattında araya girip sinyali invert ediyorsan bit terslemiyorsun gönderdiğin datayı tersliyorsun. Karşı taraf da datayı ters almalı. Aksi halde alamaz veya saçmalar.

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

My75

Nasıl yani hocam? terslediğim zaman 8 bitinde tersini almıyormuyum?

Sonucta byte'ı terslediğim zaman bit'i de terslemiş olmazmıyım??

$01=%00000001  bu 1 byte'lık bir bilgi,bunu 4069 ile terslersem

$FE=%11111110 olmazmı?? Ben bu mantıkla bakıyorum olaya hocam,yanlışım varsa lütfen düzeltin??
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

OG

Olmaz çünkü gönderilen seri datanın içeriği yalnızca 8 bit data muhteviyatı kadar değil. Datanın başlama ve bitiş (mark süresi-start-stop) bitleride var ve bunlarda tersleniyor. Bunları koruman gerekir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

My75

Hocam şimdi aklıma geldi 4069 koydugumda start/stop bitlerinide terslemiş oluyorum galiba..Ama programda terslediğim zaman sadece 8 bit tersleniyor şimdi anlıyorum,tüh be eminim bunu demek istediniz hocam,ben bunu nasıl atladım...
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...