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);
}
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--;
}
}
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.
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.
amacınız 4. sutundan yazdırmaksa
lcdout(1,4,txt);
şeklide yazdırın
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)
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...