Keil hexdecimal sayı

Başlatan armsistem, 15 Mart 2013, 00:49:07

armsistem

Arkadaşlar merhaba , mikroişlemciye uart üzerinden hexdecimal veri göndermem gerekiyor.
Örnek olarak Hexdecimal -->(0x41) --> değerini göndermem gerekiyor. Bilgisayardan mikroişlemciye 41 verisini string olarak gönderiyorum gönderiyorum.

Kodlar aşağıda ;
char getchar (void) /* Read character from Serial Port */
  {while (!(U0LSR & 0x01));
     return (U0RBR);
  }


getchar okuduğum değer char bir değer bu değeri nasıl hexdecimal çeviririm. Program içerisinde o değeri hexdecimal olarak kullanmam gerekiyor.




Mucit23

Hocam bilgisayarda hangi dilde program yazdınız. Neden Hex olarak göndermiyorsunuz.

armsistem

Yanıt olarak teşekkür ederim, adamın biri projeyi o şekilde tasarlamış ben projeyi yeni devraldım , PC tarafındaki programa müdahale edemiyorum , PC uart üzerinden işlemciye hexdecimal değerler gönderiyor ama string formatında benim bu değerleri alıp array aktarmam gerek

örnek ; char array_0 []= {okuduğum değer1 ,okuduğum değer2,okuduğum değer3 ,okuduğum değer4,okuduğum değer}
            char array_0 []= {0x01,0x05,0xa1}---- > gibi

Klein

#3
veri sayısı önceden belli mi?

Gelen veri  "123,231,66,1,123,145,666,765" gibi string olarak geliyor.

soru şu
veriyi sayıya çevirip bir diziye mi atmak istiyorsun,
yoksa  HEX gösterecek şekilde amastring olarak mı atmak istiyorsun?

eğer sayıya çevirip diziye atacağım , vari sayım da önceden belli diyorsan sprintf(...) kullanabilirsin.
yok veri sayım belli değil diyorsan,
string içinde virgülleri aratıp iki virgül arasında kalan metni atoi(...) fonksiyonu ile sayıya çevirirsin.