Picproje Elektronik Sitesi

DERLEYİCİLER => Microchip MPLAB C serisi => Microchip C18 => Konuyu başlatan: emrez - 03 Temmuz 2010, 17:30:41

Başlık: c18 byte ters çevirme hk yardım.
Gönderen: emrez - 03 Temmuz 2010, 17:30:41
Selam arkadaşlar örnek 10011101  byte değerini kolay ve kısa bir yöntemle 10111001 olarak ters çevirmek istiyorum. bunu c18 ile nasıl yaparım
_asm _endasm olarak yapayım dedim asm de böyle bir kod bulamadım. yardımınızı rica ederim. her biti tek tek bir işleme tabi tutmak istemiyorum
basit bir yolu olmalı diye düşünüyorum. yapacağım devrenin pcb si lcd nin 4 bit veri yolunu ters sıralama ile kullanacak. yani rb7 lcd nin 4. data pinine .
pcb böyle daha sade oluyor.
Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: fatihinanc - 03 Temmuz 2010, 17:51:20
değişkeni bir buffera alıp önce ilk 4 biti sola kaydırarak sonra da bufferdaki son 4 biti sağa kaydırarak olabilir. denemek lazım.         

Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: F493 - 03 Temmuz 2010, 19:58:03
Selam,

Ben soruyu yanlis anlamisim o nedenle cevabi siliyorum.

Esen kalın.
Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: fatihinanc - 03 Temmuz 2010, 20:06:26
Alıntı yapılan: F493 - 03 Temmuz 2010, 19:58:03
Ben soruyu yanlis anlamisim o nedenle cevabi siliyorum.

x=~x; olarak mı anladınız ben de ilk başta öyle anlamıştım sonra değiştirdim. :)

ama yukarıda bahsettiğim yöntemle de olmaz. aslında olur da 3 adımda olmaz.
o işlemleri bit seviyesine inene kadar yapmak lazım o da çok mantıksız olur.
hazır bir fonksiyon var mı bilmiyorum.

eğer çok fazla kullanacaksanız biraz uğraşıp fonksiyon haline getirebilirim fakat elinizle değiştirdiğinizden daha fazla RAM alanını işgal eder.
Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: Tagli - 03 Temmuz 2010, 20:35:28
Bu soru daha önce bu başlıkta (https://www.picproje.org/index.php/topic,28069.0.html) sorulmuştu. Verilen kod her ne kadar asm dilinde olsa da aynı mantık çok rahat bir şekilde C'de de uygulanabilir.
Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: F493 - 03 Temmuz 2010, 20:47:51
 :)
Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: picmanya - 03 Temmuz 2010, 21:18:28
işlemcinin data memeorisinde 
MODCON
Modulo and Bit Reversed Addressing Controls Register
ayarlaması mevcutmu
işlemcinin ayrıntılı kullanım klavuzunda MODCON register yada Bit Reversed Addressing diye arat böyle bir şey varsa işin kolay ve hızlı - etkin olarak görülür yoksa bitlerle tek tek uğraşman gerekir.
Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: muhittin_kaplan - 04 Temmuz 2010, 00:13:01
asm de swapf komutu niblle lar arası değişim yapmıyormuydu arkadaşlar ?
Example: SWAPF REG, 1, 0
Before Instruction
REG = 53h
After Instruction
REG = 35h
Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: muhittin_kaplan - 04 Temmuz 2010, 00:15:48
evet bende yanlış anlamışım. böyle bir komut yok :(
Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: mufitsozen - 04 Temmuz 2010, 21:02:05
unsigned char BitReverse(unsigned char inByte){
   unsigned char retByte=0;
   int tBitCount;
   for(tBitCount=0; tBitCount < 8; tBitCount++){
      retByte = retByte << 1;
      retByte |= (inByte & 1) ? 1 : 0;
      inByte = inByte >> 1;
   }
   return(retByte);
}
Başlık: Ynt: c18 byte ters çevirme hk yardım.
Gönderen: emrez - 05 Temmuz 2010, 12:36:32
Cok teşekkür ederim arkadaşlar. basit bir lcd c18 dilinde hazırlıyorum. daha doğrusu yabancı formlarda exaple verilip eksik verilen bilgileri tamamlayıp
birşeyler yapmaya çalışıyorum.