stellaris-tiva integer to char ve uart dan basma yardım

Başlatan fractal, 02 Mayıs 2014, 17:08:16

fractal

arkadaşlar float yada integer değişkenimi ccs de bir türlü char yapıp uartdan gönderemiyorum.netteki çoğu uygulamayı inceledim.direkt uartsend  ile basamıyorum.sprintf deniyorum derlerken hata vermiyor ama programı çalıştırınca hata kesmesine gidiyor.uartstdio yada stdio.h  include ettim. itoa.c denedim hiç birini işe yaramadı.seri porta bir türlü değişkeni karaktere ceviripte basamadım
Restantum cogniscutur Quantum deligutur

fractal

Restantum cogniscutur Quantum deligutur

z

Senin sorunun islemci kaynakli degil.

Gonderme isini bosver simdilik.

sprintf ile float degeri ramda asci char haline donustur oncelikle. Gerisi zaten kolay.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

faruk_ultras

sprintf fonksiyonunu bende birkaç kere float için kullandığımda hata almıştım ama integer değerler için gayet iyi çalışıyor ona kefil olabilirim.high level programlama yaparken bu tür hatalar olabilir diye düşünüp üstüne düşmemiştim.onun yerine kestirme yoldan float bir değeri 1 milyon'la çarpıp integer yapıyorum.ondan sonra o sayıyı sprintf ile diziye dönüştürüyorum.en sonundada string elemanlarının içine virgülü ekliyorum.tabi bu çok kötü bir yöntem.

ayrıca debug penceresinden o sayının string ve float değerlerini izlediniz mi ?

fractal

debug penceresinden göremiyorum cünkü sprintf komutu işlenince hata kesmesine gidiyor.derlerken hata almıyorum.
Restantum cogniscutur Quantum deligutur

berat23


z

Hic ipucu yok.

Sprintf komutunda hedef gosterdigin string alani nasil bir alandir? Herne kadar derleyici kizmasa da gercekten rammidir?

Sprintf komutudunu deneme amacli farkli degiskenlerle denedinmi?

En azindan ilgili komut satirini yayinla.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fractal

Alıntı Yap
#include <stdio.h>
unsigned int sayi;
char string[30];

void itoa(char *ret,int value){
sprintf(string,"%d",sayi);
}


int
     main(void)
{
value=123;
itoa(string,value);


}




kodum bu
Restantum cogniscutur Quantum deligutur

z

#include <stdio.h>

int main()
{
   char MyString[16];

   sprintf(MyString, "%d", 1234);
   return(0);
}


Bu kodu bir dene.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fractal

olmuyor hocam sprintf gelince hamen faultısr ye gidiyor...
Restantum cogniscutur Quantum deligutur

z

CM4 kullaniyorsan FPU unitesi ile belki bir alakasi vardir. Bu donanim STM32F4 de de basimizi agritmisti.

FPU yu kullanma gibi bir secenek varsa onu etkinlestir yada FPU yapilandirma kodlarini eklemeyi dene.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fractal

Library Function Assumptions burdan printf  support full yaptım. yine olmadı usnprintf ile denme yapıyorum şimdi.sonra printf full yaptığıma göre sadece printf ile olurmu diye bakacağım yani.uartprintf ile direk basabilirmiyim ¿
Restantum cogniscutur Quantum deligutur

z

Karşı taraf ot yolar. Gene de alternatif bir çözüm.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fractal

bunun bu kadar problem olacağını düşünmemiştim.
hocam ccs ye uyarlamaya çalışıyorum.bu kodlarla tam olarak ne yaptığımızı açıklayabilirmisiniz?sanırım burda include etmemiz gereken birşeyde yok.ozaman bu daha kullanışlı olsa gerek.
hangi açıdan ot yolacağımızıda öğrenmek isterdim..
Restantum cogniscutur Quantum deligutur

z

Verileri gonderecegin cihazda kod yazma sansin olacakmi?

4 yada 8 byte'dan olusan float bir sayi sana byte byte ulastirilirsa bunun bizim anladigimiz anlamda hangi sayiya karsilik geldigini yorumlayabilecekmisin?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com