Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => Konuyu başlatan: ahmetbudak - 01 Şubat 2015, 22:41:26

Başlık: Mikro C lcd değişken yazdırma
Gönderen: ahmetbudak - 01 Şubat 2015, 22:41:26
iyi akşamlar Mikro C de yazıp derlediğim aşağıdaki programda şöyle bir problem var  'a' değişkeninin değerinin basamak sayısı düştüğünde  mesela 'a' 100 iken  99'a düştüğünde Lcd de  990 olarak görünüyor yani önceki 100 değerinin birler basamağındaki 0 ekranda kalıyor. bu durumun önüne nesıl geçeriz.
cevaplarınız için şimdiden teşekkürler.
while(1){

    inttostr(a,b);
    ltrim(b);
    Lcd_Out(1,1,b);

}
Başlık: Ynt: Mikro C lcd değişken yazdırma
Gönderen: MCansız - 01 Şubat 2015, 22:54:19
ltrim() fonksiyonunu neden kullandınız ?

basit olarak


int a=500;
char txt[10];

void main(){

Lcd_Init();
                Lcd_Cmd(_LCD_CURSOR_OFF);
                Lcd_Cmd(_LCD_CLEAR);

while(1){
    inttostr(a,txt);
    Lcd_Out(1,1,txt);
    a--;
   
}

}


Başlık: Ynt: Mikro C lcd değişken yazdırma
Gönderen: ahmetbudak - 01 Şubat 2015, 22:59:53
Alıntı yapılan: mk_29 - 01 Şubat 2015, 22:54:19
ltrim() fonksiyonunu neden kullandınız ?

basit olarak


int a=500;
char txt[10];

void main(){

Lcd_Init();
                Lcd_Cmd(_LCD_CURSOR_OFF);
                Lcd_Cmd(_LCD_CLEAR);

while(1){
    inttostr(a,txt);
    Lcd_Out(1,1,txt);
    a--;
   
}

}




ltirm kullanılmadığına lcd 1 satırın 4. sütunundan yazmaya başlıyor.
Başlık: Ynt: Mikro C lcd değişken yazdırma
Gönderen: tekosis - 01 Şubat 2015, 23:08:24
3. hane lcd nin hafızasında olduğundan siz yeni veri gönderdiğinizde eskiden kalma 3. hanedeki 0 ekranda asılı kalıyor. bunu engellemek için a kayıtçısının değeri 3 haneden 2 haneye düştüğünde lcd yi bir defa temizlemeniz yeterli olacaktır.
Başlık: Ynt: Mikro C lcd değişken yazdırma
Gönderen: MCansız - 01 Şubat 2015, 23:09:49
amacınız 4. sutundan yazdırmaksa

lcdout(1,4,txt);

şeklide yazdırın
Başlık: Ynt: Mikro C lcd değişken yazdırma
Gönderen: ahmetbudak - 01 Şubat 2015, 23:25:27
Alıntı yapılan: mk_29 - 01 Şubat 2015, 23:09:49
amacınız 4. sutundan yazdırmaksa

lcdout(1,4,txt);

şeklide yazdırın
1. satır 1.sütundan başlamıyor ki zaten.

mesaj birleştirme:: 02 Şubat 2015, 23:29:26

Alıntı yapılan: tekosis - 01 Şubat 2015, 23:08:24
3. hane lcd nin hafızasında olduğundan siz yeni veri gönderdiğinizde eskiden kalma 3. hanedeki 0 ekranda asılı kalıyor. bunu engellemek için a kayıtçısının değeri 3 haneden 2 haneye düştüğünde lcd yi bir defa temizlemeniz yeterli olacaktır.
mesela if(a<100) lcd_cmd(_lcd_clear);   gibi mi? bu durumda sonsuz döngü içinde 100 den küçük  a değerlerinde ekran titremez mi?

mesaj birleştirme:: 01 Şubat 2015, 23:42:23

şema ve kod dosyası aşağıdaki linkte
http://s3.dosya.tc/server31/iJNHAA/Yeniklas_r.rar.html (http://s3.dosya.tc/server31/iJNHAA/Yeniklas_r.rar.html)
http://s3.dosya.tc/server31/iJNHAA/877_deneme.rar.html (http://s3.dosya.tc/server31/iJNHAA/877_deneme.rar.html)
Başlık: Ynt: Mikro C lcd değişken yazdırma
Gönderen: mehmet - 02 Şubat 2015, 00:29:17
Haneleri ayırıp bir diziye aktarın. Dizinin
her elamanını ayrı ayrı yazdırın.

Test örneği;

unsigned int sayi = 6789;
unsigned char hane[] = {0, 0, 0, 0};

hane[0] = sayi  % 10;
hane[1] = (sayi /10) % 10;
hane[2] = (sayi / 100) % 10;
hane[3] = (sayi / 1000);

if(hane[1] == 0) hane[0] = XXX;  //Burada XXX olan yere lcd yazdırma fonksiyonunuzda boş karakter çıkaran bir değer gireceksiniz.
if(hane[2] == 0) hane[0] = XXX; // boşluk karakterinin değeri olan 32 de olabilir ya da " " gibi bir değer de olabilir. Micro C' ye göre siz düzenlersiniz.
if(hane[3] == 0) hane[0] = XXX;

//hane[0] sıfır olunca nasıl bir değer görünmesini isterseniz de ona göre değişiklik yapabilirsiniz...