Picproje Elektronik Sitesi

DERLEYİCİLER => Hi-Tech => Konuyu başlatan: Chan86 - 16 Mart 2009, 17:51:33

Başlık: bit kaydırma
Gönderen: Chan86 - 16 Mart 2009, 17:51:33
Arkadaşlar iyi akşamlar.
0x10000001 şeklindeki bir veriyi hem
0x10000001>0x00000010>0x00000100... şeklinde hem de
0x10000001>0x00000011>0x00000110... şeklinde kaydırmak istiyorum. Bunlar için komut nedir acaba?
Herkese iyi çalışmalar.
Başlık: bit kaydırma
Gönderen: M_B - 16 Mart 2009, 18:05:49
https://www.picproje.org/index.php/topic,19635&highlight=
Bu linke bir göz at derim.
Başlık: Re: bit kaydırma
Gönderen: arslan74 - 17 Mart 2009, 13:43:33
Alıntı yapılan: "Chan86"Arkadaşlar iyi akşamlar.
0x10000001 şeklindeki bir veriyi hem
0x10000001>0x00000010>0x00000100... şeklinde hem de
0x10000001>0x00000011>0x00000110... şeklinde kaydırmak istiyorum. Bunlar için komut nedir acaba?
Herkese iyi çalışmalar.

Merhaba,

Hangi PIC'i kullacaksın ? Zira PIC12 ve PIC16 serisinde senin istediğin işlemi yapan bir komut malesef yok. PIC18 veya daha üst versiyonlara bakman gerek.

Selamlar
Başlık: bit kaydırma
Gönderen: Chan86 - 17 Mart 2009, 21:11:44
Teşekkür ederim herkese arkadaşlar 16F877 ile kayan yaz için kayma efekleri kullanmak amacıyla bit kaydırma işlemi gerekiyordu ve sağolun yardımlarınızla çözdüm.
Başlık: Re: bit kaydırma
Gönderen: X-Fi - 29 Mayıs 2009, 18:36:37
Alıntı yapılan: "arslan74"
Alıntı yapılan: "Chan86"Arkadaşlar iyi akşamlar.
0x10000001 şeklindeki bir veriyi hem
0x10000001>0x00000010>0x00000100... şeklinde hem de
0x10000001>0x00000011>0x00000110... şeklinde kaydırmak istiyorum. Bunlar için komut nedir acaba?
Herkese iyi çalışmalar.

Merhaba,

Hangi PIC'i kullacaksın ? Zira PIC12 ve PIC16 serisinde senin istediğin işlemi yapan bir komut malesef yok. PIC18 veya daha üst versiyonlara bakman gerek.

Selamlar

arslan hocam hi-tech de RRF, RLF komutları yokmu bunlar olmadan nasıl seri haberleşme yapıyorsunuz bu çok büyük bir eksik bence asm de olupda C de olmaması :?
Başlık: bit kaydırma
Gönderen: arslan74 - 29 Mayıs 2009, 21:47:01
Alıntı Yap
arslan hocam hi-tech de RRF, RLF komutları yokmu bunlar olmadan nasıl seri haberleşme yapıyorsunuz bu çok büyük bir eksik bence asm de olupda C de olmaması

Aslında o kadarda büyük bir sorun değil.

Nedeni C de, ASM ile C birlikte karışık kod yazabilme imkanı vardır. C' nin yetmediği yerde ASM kodu ekleyebilirsin. Dolaysıyla iş sizin C ve ASM bilgisine bağlı kalıyor. Hatta bazı kodlarda daha az yer kaplasın ve daha hızlı çalışsın diye C kodunun içine ASM kodları eklediğini görürsünüz.

Bazen bende ASM kodları ekliyorum. Ama mecbur kalmadıkca kullanmiyorum ASM kod yazmak cok zor ve bircok şeye dikkat etmeniz gerekiyor. C de kod yazmak ASM göre cok daha hızlı ve sizin adınıza bircok şeyi kontrol ediyor.

C'de kod yazmayı seviyorum diyebilirim. Üst seviyede kod yazmak bu kadar zevkli değil. ASM kod yazmak ise Cin işkencesi.

Selamlar
Başlık: bit kaydırma
Gönderen: X-Fi - 21 Temmuz 2009, 23:19:50
bende artık C de kod yazmaya başladım artık asm ye dönmem heralde o keyfi aldım bikere :D

Chan86 sorunun çözümü bu olabilir:

0x10000001>0x00000011>0x00000110...

if(veri&0x80)  {veri<<=1;veri|=0x01;}  else  {veri<<=1;}


0x10000001>0x00000010>0x00000100...

veri<<=1;
Başlık: bit kaydırma
Gönderen: XX_CİHAN_XX - 23 Temmuz 2009, 23:50:48
Basit bir RLF yada RRF uygulaması için kodları şişirmeye gerek yok bence
arslan hocamın dediği gibi asm ile yapmak daha mantıklı bence


asm("rlf _reg,f");         //sola kaydır
asm("rrf _reg,f");        //sağa kaydır
Başlık: bit kaydırma
Gönderen: X-Fi - 24 Temmuz 2009, 00:42:52
asm("RRF REG,F");  şeklindede yapılabilir  ben örnek olsun diye paylaşmıştım kimse cvp vermemiş  ;)