Seri İlatişim

Başlatan stm, 31 Mart 2015, 23:04:36

stm

pic ccs de seri iletişim de dataları hex olarak hangi komutla gönderebilirim?





esensoy

putc(0x32) dersen hex 32 ascii 2 gider,
putc('2') dersen yine hex 32 ascii 2 gider
En tehlikeli an "zafer" anıdır.

baran123

unsigned int8 data = 0xFF;
putc (data);

RaMu

Değişken 1 byte ise
printf(putc,"%x"degisken);


Değişken 2 veya 4 byte ise
printf(putc,"%Lx"degisken);



Hex in olursa harf kısmı büyük harfle yazılsın istiyorsan
(sadece x leri büyük harfle X yazman yeterli)
Değişken 1 byte ise
printf(putc,"%X"degisken);


Değişken 2 veya 4 byte ise
printf(putc,"%LX"degisken);


putc kısmında istenirse-gerekirse lcd_putc vs. de kullanılabilir.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

esensoy

ramu oyle hex gitmez ki, hex değerini ascii olarak göndermek istiyorum demiyor, hex göndermek istiyor, ben mi yanlış anlıyorum?
En tehlikeli an "zafer" anıdır.

RaMu

Bende senin gibi anladım.
Ama hex böyle gidiyor,
daha önce isisde denedim,
eğer değişkende misal 0xAB varsa ve yukarıdaki gibi gönderirsek
virtual terminalde direk 0xAB olarak görülebiliyor.
CcsC nin kendi dökümanlarında var zaten yukarıdakiler;
CcsC manual sayfa 196.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Gökhan BEKEN

Virtual terminalde öyle gözükmesi normal, çünkü string gösteriyor herşeyi.
Hex göndermek için @Baran'ın gösterdiği gibi yapmak gerekir. Bu arada soru "seriporttan nasıl hex gönderilir?" şeklinde, soruda bir yanlışlık var, seriporttan sadece 1 çeşit veri gönderebilirsiniz.
Bu veri onluk sistemde 0 ila 255 arasındadır, ikilik sistemde 0b00000000 ila 0b11111111 arasındadır, hexadecimal sistemde 0x00 ila 0xFF arasındadır.
Mesela decimal olarak 65, ascii olarak 'A', hex olarak 41 dir bu sayı.  Hepsi de aynı şey, yani gönderirken binary olmasın hex olsun diyemezsiniz.
Özel mesaj okumuyorum, lütfen göndermeyin.

RaMu

Dediklerimi kafa karıştırıyor sanırım örnekleyeyim:

unsigned int8 degisken;

degisken=65;
//veya
degisken='A';
//veya
degisken=0x41;

dedin,

printf(putc,"%x"degisken);

dersen
ekranda 0x41 görürsün,

printf(putc,"%d"degisken);

dersen
ekranda 65 görürsün

printf(putc,"%c"degisken)

dersen
ekranda A görürsün.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

stm

cevap veren tüm arkadaşlara çok teşekkür ederim.
yarın devremi test edip sonucu yazarım.