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.
Hocam bilgisayarda hangi dilde program yazdınız. Neden Hex olarak göndermiyorsunuz.
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
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.
Hocam büyüksün