C18 değişken tanımlama ve fonksiyon yazma

Başlatan computerboy, 14 Aralık 2011, 14:40:15

justice_for_all

sprintf yapınca mı calısmıyor hocam normal gonderince calısıyor degil mi?
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

computerboy

Normal fonksiyon olarak gönderince çalışıyor hocam. mesela   

glcd_PutMessage((rom char*)"\x16\x29\x28 Mustafa ATALAY");

bu şekilde gayet güzel çalışıyor.

justice_for_all

#32
buyuk ihtimal tamsayiyla alakasi var hocam ya arastirmak lazim..

https://www.picproje.org/index.php?topic=14130.0

bu linke bir bakin hocam belki biseler cikar..
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

computerboy

karıştırıyorum hocam. inşallah işe yara bişeyler çıkar. teşekkürler ilgine.

justice_for_all

ne demek hocam bende arastiriyorum biseler bulabilirsem paylasirim..
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

computerboy

Arkadaşlar anlamadım gitti normalde bu şekilde çalışması lazım değilmi bu kodun ? acaba programda sıkıntı olabilirmi ?
char buffer[];
long x_int;
CMCON=7;
glcd_Init();

glcd_ClearScreen();

x_int=(long)5689;
sprintf(buffer,(const far rom char*),(long)x_int);

glcd_ClearScreen();
glcd_SetPos(2,20);
glcd_PutMessage((rom char*)*buffer);

computerboy

gerbay hocam aynen dediğiniz şekilde ve farklı şekillerde denedim. ama yapamadım. herhalde kurulu olan c programım bozuk yenisini edinip tekrar denicem. teşekkürler.

computerboy

olmadı gene  :'(

bende bişiler var basmıyor kafam bu işe :)

JKramer

Sonucu glcd yerine seri port'dan kontrol etmeyi deneseniz? Belki glcd kodlarıyla ilgili bir durum vardır. Ya da debug şansınız varsa Mplab'dan buffer'ı kontrol edebilirsiniz sanırım.

computerboy

Usb üzerinden verileri bilgisayar yazılımına gönderiyorum yazılımada bozuk geliyor. mplabdan bufferi nasıl kontrol edeblirim hocam. debug yapmadım hiç. nerden bakmam lazım.

JKramer

Tam hatırlamıyorum, kesin konuşmayayım ama yukarıda debugger menüsü var, Mplab Sim (software debugger) ya da Pickit2 gibi donanımınızı seçiyorsunuz. Daha sonra bir yerlerde watch window olacak, oradan istediğiniz değişkenleri ya da register'ları ekleyip adreslerine ve içeriklerine bakabilmeniz lazım. Bir de tüm icsp kablolarını hedef devreye bağlamak gerekiyordu sanırım. Dediğim gibi pek yardımcı olamadım ama olmazsa bilen biri cevap yazar.

computerboy

Evete hocam buldum. buffer boş gözüküyor. x_int dolu sprintf fonksiyonu görevini yerine getirmiyor. :) internettei bir çok örneği denedim gene olmadı gözden kaçırdığım bir püf noktası var herhalde.

JKramer

C18'de long 32 bit'likmiş, gerbay'ın verdiği kodda %d yerine %Ld yazmayı dener misiniz?

computerboy

olmadı gene hocam. bu C dilini  çok zor öğreneceğim heralde bide deneme yanılma yöntemi ile çalışıyorum olacak iş değil :) türkçe kitap almam lazım.

computerboy

#44
Üstad bu debug olayı mütiş bişyemiş, yeni haberim oldu :) teşekkür ederim. buffer kısmını doldurmayı başardım yani sprintf çalışıyor ama glcdye karakter basma kısmı sorunlu bi sürü anlamsız karakter çıkıyor. acaba glcd karakterleri romdan aldığı içinmi ? bunun için nasıl bir işlem yapmalıyım ?

glcd_PutMessage((unsigned char)buffer);

glcd_PutMessage((rom char*)buffer);

glcd_PutMessage(buffer);

bu şekillerde deneme yaptım olmadı bunun mantığı nedir nereleri değştirmem lazım.