İyi akşamlar arkadaşlar keil uvision 5 kullanıyorum aşağıdaki fonksiyonu kullandığımda Türkçe karakterleri multi olarak derlliyor örnek "Ş" =C59E değerini alıyor.
Konuyu açmadan araştırdım fakat herhangi bir çözüm bulamadım.
Font3("ŞşĞğÜü",yatay_basla,120,24,0xffffff,0x000000,Arial_24);
merhaba
Editörün encoding özelliğine bak UTF8 olmalı yada ANSI
Alıntı yapılan: ercan_t - 25 Ağustos 2015, 09:10:27
merhaba
Editörün encoding özelliğine bak UTF8 olmalı yada ANSI
Kıymetli cevabınız için teşekkür ederim benimde ilk aklıma gelen bu ayarları değiştirmekti daha önce asm ile 8051 programlarken başıma benzer durumlar gelmişti ama ARM için C de çözüm olmadı.
karakterlerin ascii değerlerini yazmalısınız, keil UTF8 olarak kaydettiğinizden o kodlama ile değerlendirmiş
http://www.ascii-codes.com/cp857.html (http://www.ascii-codes.com/cp857.html)
Alıntı yapılan: ErsinErce - 19 Eylül 2015, 09:51:40
karakterlerin ascii değerlerini yazmalısınız, keil UTF8 olarak kaydettiğinizden o kodlama ile değerlendirmiş
http://www.ascii-codes.com/cp857.html (http://www.ascii-codes.com/cp857.html)
Ascii değerlerini yazamıyorum şimdilik bu şekilde kullanıyorum C de çok yeniyim daha basit çözüm önerisi olursa onu kullanırım.
void Font(char*s,const uint8_t * font_)
{
unsigned char c;
while(*s!='\0')
{
if(*s == 0xc3)
{
if (*s++ == 0xc3 & *s-- == 0x87) //Ç
{
s = s + 2; c=0xc7;
}
else if (*s++ == 0xc3 & *s-- == 0x96) //Ö
{
s = s + 2; c=0xd6;
}
else if (*s++ == 0xc3 & *s-- == 0x9c) //Ü
{
s = s + 2; c=0xdc;
}
else if (*s++ == 0xc3 & *s-- == 0xa7) //ç
{
s = s + 2; c=0xe7;
}
else if (*s++ == 0xc3 & *s-- == 0xb6) //ö
{
s = s + 2; c=0xf6;
}
else if (*s++ == 0xc3 & *s-- == 0xbc) //ü
{
s = s + 2; c=0xfc;
}
}
else
if (*s == 0xc4)
{
if (*s++ == 0xc4 & *s-- == 0x9e) //Ğ
{
s = s + 2; c=0xd0;
}
else if (*s++ == 0xc4 & *s-- == 0x9f) //ğ
{
s = s + 2; c=0xf0;
}
else if (*s++ == 0xc4 & *s-- == 0xb0) //İ
{
s = s + 2; c=0xdd;
}
else if (*s++ == 0xc4 & *s-- == 0xb1) //ı
{
s = s + 2; c=0xfd;
}
}
else
if (*s == 0xc5)
{
if (*s++ == 0xc5 & *s-- == 0x9e) //Ş
{
s = s + 2; c=0xde;
}
else if (*s++ == 0xc5 & *s-- == 0x9f) //ş
{
s = s + 2; c=0xfe;
}
}
else
{
c = *s++;
}
//c = *s++;
lcd_data=c-0x20;
}
}
Font("ŞşĞğÜü",Arial_24);