CooCox Örnek Proje Kurulumu

Başlatan memo333, 27 Ekim 2012, 00:55:37

Klein

Çok işe yaradı.
CoSmart'ın  ST desteği var mı? nolacak mı? ne zaman olacak?
Bilgi sahibi olan var mı?

muhittin_kaplan

#31
Şu an yok. Açıklamada yok.

mesaj birleştirme:: 04 Kasım 2012, 23:53:08

Unutmadan eski sürümle yeni çıkan 1.6 coide versiyonlarının proje dosyaları farklı.

Seckin ALAN

ST için ide'den bağımsız compiler var mı ?
Kar taneleri ne güzel anlatıyor, birbirlerine zarar vermeden de yol almanın mümkün olduğunu.. Mevlana

muhittin_kaplan


Seckin ALAN

Kar taneleri ne güzel anlatıyor, birbirlerine zarar vermeden de yol almanın mümkün olduğunu.. Mevlana

muhittin_kaplan

neden yapamıyorum.

#include <stdio.h> yaparak dahil ediyorum

float bir değişken hazırlıyorum
float f1=3.1456;

bir array tanımlıyorum
char Tmp[];

sprintf ile bunu Tmp ye nasıl atarım ?

Seckin ALAN

#36
Alıntı yapılan: muhittin_kaplan - 09 Kasım 2012, 14:06:58
neden yapamıyorum.

#include <stdio.h> yaparak dahil ediyorum

float bir değişken hazırlıyorum
float f1=3.1456;

bir array tanımlıyorum
char Tmp[];

sprintf ile bunu Tmp ye nasıl atarım ?

hocam benzer bir olayı python ile yazmam gerekmişti kod bloğunu vereyim belki bir fikir oluşturabilir.
sayisal bir değişkeni diziye atıyor.
def sayidizi(sayi):
    string_sayi = '%s' % sayi
    return [int(x) for x in string_sayi]

34 sayısını [3,4] şeklinde döndürüyor.
c için ufak denemeler yapıyorum.

Düzenleme:
-------------------------
C kodu
#include <stdio.h>

int main(){
char dizi[10];
float f1=3.1456;
sprintf(dizi, "%f", f1);
printf("%s\n",dizi); // diziyi string şeklinde yazdırması için rica ettik. %s ile
}


Düzeltme 2:
--------
C de dizinin boyutunu önceden bildirmek zorundasınız:
Tmp[]; dizi boyutu belirtilmemiş oluyor fakat şu şekilde çözüm var
#include <stdio.h>

int main(){
float f1=3.1456;
char* Tmp=NULL;
asprintf(&Tmp, "%g", f1);
printf("%s\n",Tmp);
}
Kar taneleri ne güzel anlatıyor, birbirlerine zarar vermeden de yol almanın mümkün olduğunu.. Mevlana

muhittin_kaplan

#37
bahtsız bedevi durmu mevcut sanırım.
http://www.exodusamps.com/Exodusamps/Embedded_Stuff/Entries/2012/2/8_Use_printf()_on_STM32_in_CoIDE.html

mesaj birleştirme:: 09 Kasım 2012, 14:44:26

üçünüde denedim. olmuyor. ama hatada vermiyor. linker iş yaptıktan sonra build hatası veriyor.

mesaj birleştirme:: 09 Kasım 2012, 14:53:37

http://www.coocox.org/forum/topic.php?id=1756

Seckin ALAN

hocam breakpoint koyarak adım adım görme şansımız var mı ?

Kar taneleri ne güzel anlatıyor, birbirlerine zarar vermeden de yol almanın mümkün olduğunu.. Mevlana

muhittin_kaplan

#39
derlemiyor. ondan debug yapamıyorum.

mesaj birleştirme:: 09 Kasım 2012, 15:22:09

repostory ekranından c lib ve Retarget printf en eklenmesi gerekiyor.

mesaj birleştirme:: 09 Kasım 2012, 18:15:06

yok denemediğim kalmadı Float tür değişkenin sprintf ile dönüştüremiyorum. yazılanlarıda yaptım (syscall.c deişikliği, startup daki stack değişikliği )

muhittin_kaplan

Hocam Aşağıdaki Programda dizide olması gereken nedir

char dizi[10];
float Pi=3.145F;
sprint (dizi,"1.1f",Pi);

Seckin ALAN

Alıntı yapılan: muhittin_kaplan - 09 Kasım 2012, 23:31:58
Hocam Aşağıdaki Programda dizide olması gereken nedir

char dizi[10];
float Pi=3.145F;

sprint (dizi,"1.1f",Pi);


sprint (dizi,"%f",Pi);

olmaası gerekmez mi?
Kar taneleri ne güzel anlatıyor, birbirlerine zarar vermeden de yol almanın mümkün olduğunu.. Mevlana

muhittin_kaplan

dizinin içerisindeki sonuçta Char dizidir değil mi ?

mesaj birleştirme:: 09 Kasım 2012, 23:54:49

Aslında bunu CooCox ile çalışan yada yüklü biri ile karşılıklı test etmek gerek. çünki CoIDE de problem var gibi

Klein

Kitimi bozmam için bana gaz vermeseydin, şimdi denemiş olurdum :)
printf meselesini takip etmedim. sorun nedir? olmayan ne?

muhittin_kaplan

#44
Hocam Kısaca Hemen Toparlayayım.
Bir GLCD di çalışması yaparken Ölçtüğüm ADC yi ekrana basmak istedim.

ADC= (ADC_GetConversionValue(ADC1)
ile degeri alıyor hesaplıyorum. Sonuçta bana Float bir değer veriyor. Yalnız (takip ettiğim diğer başlık https://www.picproje.org/index.php/topic,43039.0.html)
Herhangi birşeyi ekrana yazdırmak için

void GLCD_WriteChar(char charToWrite)
{
char i;
charToWrite -= 32; 
for(i = 0; i < 5; i++) 
  GLCD_WriteData(GLCD_ReadByteFromROMMemory((char *)(font5x8 + (5 * charToWrite) + i))); 
GLCD_WriteData(0x00);
}
//-------------------------------------------------------------------------------------------------
// Write null-terminated string to screen memory
//-------------------------------------------------------------------------------------------------
void GLCD_WriteString(char * stringToWrite)
{
while(*stringToWrite)
  GLCD_WriteChar(*stringToWrite++);
}


fonksiyonlarını kullanmış.
Sonuç olarak ben birtürlü bu adc değerni ekranda gösteremedim.


mesaj birleştirme:: 10 Kasım 2012, 00:14:54

Alıntı yapılan: Klein - 10 Kasım 2012, 00:00:12
Kitimi bozmam için bana gaz vermeseydin, şimdi denemiş olurdum :)
printf meselesini takip etmedim. sorun nedir? olmayan ne?

Unutmadan, Sizin canınız Sağolsun, Yeni Kartınızı ben alayım hocam.

mesaj birleştirme:: 10 Kasım 2012, 00:16:18

float dışındakiler çalışıyor ayrıca