Menü Dilini Değiştirme

Başlatan NULL, 16 Aralık 2016, 11:28:04

NULL

Merhaba arkadaşlar
Bir süredir sizleri takip ederek ccs c dili ile farklı projeler yaptım.Sorunum ise;

ADC üzerinden okuduğum bilgileri herkesin bildiği gibi LCD ekrana yazdırıyorum. Ve okunan bu değerlerin karşılıklarına türkçe ismini yazdırıyorum. Fakat hocam ayarlar kısmında dil seçeneğinin olmasını istedi. Yani kullanılacak olan dili butonlar yardımıyla değiştirip LCD ekran üzerindeki türkçe kelimelerin ingilizce deki karşılığını yazdırmam gerekiyor. Ve tıkandım. Hiç birşey yapamadım.

Örneğin Sicaklik 25.2 C yerine,
             Temperature 25.2 C yazacak

Forumda ve başka yerlere bakmama rağmen bir çözüm bulamadım.  :(

Yardımcı olursanız sevinirim.

ete

Programında bir menü varmıdır yokmudur belli olmuyor. Yok olduğunu farzediyorum. Bu durumda sistem normal çalışma ekranında çalışmasını sürdürürken bir SEC/MENU butonu yardımı ile MENU ye giriş yapılır.
Kısaca program bir yandan ekranda sıcaklık değerini gösterirken diğer yandan da SEC tuşuna basılmış mı diye bakmalıdır.
Basılmış ise hemen ekrana kaç seçenekli bir menün var ise onu getirmen gerekecek. Yada tek seçenek olarak ekrana;
DIL DEGISTIRME başlığı altında
TURKCE
+ TUSUNU KULLAN
yazdırırsın gerekirse bu yazıları kısaltarak eklersin.
Bu ekranda iken SEC butonundan elini cektiğini test edersin sonra program + tuşuna basılmış mı test edersin.
Basılınca ekrana TURKCE yazan yerde ENGLISH yazdırırsın
SEC tuşu bu seçimi onaylar dolayısıyla SEC tuşuna basılmış ise bir bit değişkenini set edersin. DIL olabilr.
Sonuçta DIL=0 ise otomatik TURKCE seçilmiş demektir ekran TÜRKÇE çalışır. DIL i değiştirip INGILIZCE seçilince DIL=1 olur. Ana çalışma ekranına dönersin ve orada da DIL=1 ise İngilizce ekranı kullanırsın. Böylece işlem tamam olur.
Bütün bu anlattıklarımı nasıl koda dönüştüreceğini sen bileceksin. Hazır kod isteme kendin yapmaya çalış.
Yapamadığın noktada yardım ise yardımın o noktayı aşmak için istenmiş olsun.  Böylece yardım alman kolaylaşmış olur.

Ete

NULL

Hocam, asıl programım da menü var. Anlattığınız tarzda çalışıyor. Şimdilik deneme yaptığım için başka bir dosya içerisinde uğraşıyorum. Bu yüzden dil seçme işlemini pici programlamadan önce ben yapıyorum.

Söylediğinizden anladığım kadarıyla, main fonksiyonun üzerine iki farklı dil için aşağıdaki gibi iki tane fonksiyon oluşturdum.

void ingilizce()
{
const char isi[]="Temperature";
const char mesajvar[]="There is message";
}

void turkce()
{
const char isi[]="Sicaklik";
const char mesajvar[]="Mesaj Var";
}


Main fonksiyonunun içerisinde açılış dilinin türkçe olması için

if(dil==1)
{
turkce();
}

şeklinde bir tanımlama da bulundum.

Fakat derlerken isi ve mesajvar tanımlamalarını algılamadı. Yanlışı nerde yapıyorum ?

mg1980

Algılamadı derken? Hata mı verdi ? Hata verdiyse const değişkenlerini programın başında "global" değişken olarak tanımlayıp tanımlamadığınıza bakın.

NULL

#4
Alıntı yapılan: mg1980 - 16 Aralık 2016, 15:52:17
Algılamadı derken? Hata mı verdi ? Hata verdiyse const değişkenlerini programın başında "global" değişken olarak tanımlayıp tanımlamadığınıza bakın.

Evet tanımlanamayan karakter diye hata veriyordu. const değişkenlerini bir fonksiyonun içine almıştım. Siz söyledikten sonra farkettim. Main yada while'ın içinde çağırdığım için local değişken olarak algılıyor. Lcd ye yazdırdığım içerikler de başka bir fonksiyonun içinde olduğu için hata veriyor. Peki, eğer doğru yolda ilerliyor isem main'in içinde yaptığım bir farklılığı nasıl global olarak tanımlayabilirim ?

Ya da tüm kelime tanımlama işlemlerini lcd yi yazdırdığım fonksiyonun içinde mi yapmam gerekiyor ?

mg1980

Buna kodlara bakarak bir şey söylenebilir. Ama kestirmeden tavsiyem program genelinde bir kaç fonksiyon içinde kullanılması söz konusu
olan değişkenleri başlangıçta global olarak tanımlamak.Şu anda başka bir şey söyleyemem.

Powered by EzPortal