Uart'tan hex olarak gelen datayı bin dizisine çevirme işlemi

Başlatan Farukk, 26 Şubat 2019, 09:30:38

Farukk

Merhabalar arkadaşlar. İki gündür Uart'dan gelen datayı bit bit yazma işi ile uğraşıyorum işin içinden çıkamadım. Sırası ile anlatacak olursam şöyle bir işlem var uarttan ASCII ve hex biçiminde data geliyor(ABCDE1600897521 gibi) benim işim hex olan kısımla. Hex gelen kısımın da ilk basamağı high byte ikinci basamağı low byte. Örnekteki 16'yı düşünürsek mesela "0001 0110" şeklinde. Amacım da "0001 0110" şeklinde bir dizi elde edip her bir biti kullanabilmek. Bir arkadaşım bitwise ile bu işlemi yapabileceğimi söyledi ancak yapamadım. İnternette biraz araştırma yaptım bitwise ilgili fazla bir şey bulamadım genellikle switch case kullanarak bu işlemi yapan kişiler var. Bitwise ile bu işlem nasıl yapılır herhangi bir fikir verebilir misiniz?

Emre_Tuncay_

"n.bit=(hexdeğer >> n) and 1" gibi bir işlem ile yapabilirsin.

kudretuzuner

Alıntı yapılan: Farukk - 26 Şubat 2019, 09:30:38Merhabalar arkadaşlar. İki gündür Uart'dan gelen datayı bit bit yazma işi ile uğraşıyorum işin içinden çıkamadım. Sırası ile anlatacak olursam şöyle bir işlem var uarttan ASCII ve hex biçiminde data geliyor(ABCDE1600897521 gibi) benim işim hex olan kısımla. Hex gelen kısımın da ilk basamağı high byte ikinci basamağı low byte. Örnekteki 16'yı düşünürsek mesela "0001 0110" şeklinde. Amacım da "0001 0110" şeklinde bir dizi elde edip her bir biti kullanabilmek. Bir arkadaşım bitwise ile bu işlemi yapabileceğimi söyledi ancak yapamadım. İnternette biraz araştırma yaptım bitwise ilgili fazla bir şey bulamadım genellikle switch case kullanarak bu işlemi yapan kişiler var. Bitwise ile bu işlem nasıl yapılır herhangi bir fikir verebilir misiniz?
Merhaba,
Sorunuzu tam anlayamadım.
1-Datalar nereden geliyor? 2-Nereye yollanıyor? 3-Anlayabildiğim kadarı ile hex olarak yollanan dataları binary çevirip bit bit kullanmak istiyorsunuz.PIC'ten PIC'e yolluyorsanız alıcı PIC'in bir portunu örneğin portb bu işe ayırıp gelen hex kodunu yazılım ile portb pinlerinde göstermek ve sonra da her pini ayrı ayrı kullanmak.PC'ye yolluyorsanız yine yazılım gereği PC'de işlem yaptırabilirsiniz?Yazılım kodları için nereden nereye gidiyor ve de ne yapılmak isteniyor yazarsanız bilgim dahilinde yardımcı olmaya çalışırım.

Amatör

Farukk

Merhabalar Emre Tuncay arkadaşın gönderdiği bilgi sorunu çözdü aslında. Yorumlar onay bekledği için tekrardan yorum yapıp moderatörleri meşgul etmek istemedim açıkcası. Açıklamak gerekirse Linux kart üzerinde codeblocks'ta yazıyorum kodları. Datayı da bilgisayardan terminal programları ile gönderiyorum. İlginiz için teşekkür ederim kudretuzuner :)