DEcimal sayısı SHOUT ile gönderebilmek için HEX e çevirmek

Başlatan dyonizos, 25 Ekim 2016, 12:51:43

dyonizos

selamlar
Örnek olarak 283937 decimal sayısının karşılığı hexadecimal olarak 45521
ben yaptığım hesaplamalar sonucunda elde ettiğim decimal sayıyı aşağıdaki gibi SHOUT ile göndermek istiyorum.

SHOut spiDataPin, spiClockPin,LsbFirst, [sayi]

Normalde dışarıda çevirip
SHOut spiDataPin, spiClockPin,LsbFirst, [$45521]
şeklinde gönderdiğimde gidiyor.

Ancak benim elimdeki Decimal sayıyı program içinde cevirip göndermem gerekiyor.

Örnekteki gibi 283937 sayısını nasıl Hex formatına dönüştürebilirim.

Teşekkürler


kantirici

Değişkenlere ve fonk. arguman olarak geçirilen değerler için decimal veya hex olması bir fark yaratmaz. Yani siz 10 rakamını göndermek istiyorsanız 10 veya D yazabilirsiniz.

Ekrana falan yazdırmak istiyorsanız  dönüşüm yapmak gerekir. Tam olarak ne için bu dönüşümü kullanacaksınız.

dyonizos

SPI ile kontrol edilen bir kart için kullanıcam
Anladığım kadarıyla

SHOut spiDataPin, spiClockPin,LsbFirst, [283937]

ile

SHOut spiDataPin, spiClockPin,LsbFirst, [$45521]

arasında bir fark yok. yanılıyormuyum. Sadece başına hex gonderdiğimiz için $ ekliyoruz. Diğerinde Decimal olduğu için hiçbirşey eklemiyoruz.


dyonizos

Burada bir baska sorun cıkıyor karsıma.

SHOut spiDataPin, spiClockPin,LsbFirst, [$45521]  ile gonderdiğim data 20bit ve protonda gonderemiyorum bunu.

benim tum datalarımın basında 4 rakamı standart ben bu 4 rakamını normalde ayrıca gonderıyorum hex gonderırken.
yanı once 4 sonra 5521 gonderiyorum.

Pekı decimal gonderirken yani 283937 gönderimim sırasında ilk 4 biti nasıl ayırabilirip 4 ve 16 bit olarak ayrı ayrı gonderebilirim.





dyonizos

Aslında ihtiyacım olan excel de bulunan DEC2HEX(283937;4) fonksiyonu gibi bir fonksiyon.
Protonda boyle bir fonksiyon veya komut var mı acaba?

8051-ARM

Alıntı yapılan: dyonizos - 25 Ekim 2016, 20:15:29
Aslında ihtiyacım olan excel de bulunan DEC2HEX(283937;4) fonksiyonu gibi bir fonksiyon.
Protonda boyle bir fonksiyon veya komut var mı acaba?

Hocam vermiş olduğunuz örnekte hata var 283937  hex karşılığı yukarıda da yazdığınız gibi 45521 olur buda 5 basamaklı.