keypad den girilen ramkamlarla sayı oluşturma

Başlatan fractal, 29 Ocak 2009, 09:08:34

fractal

arkadaşlar ccs c de keypad kullanarak gld ekarnında sayı oluşturmak istiyorum.örneğin 4598 sayısını oluşturmak için.önce 4 tuşuna basıcam  sonra 5 tuşna sonra 9 tuşuna ve en sonda 8 tuşuna basarak girmek istediğim sayıyı oluşturmak istiyorum.bunun kolay ve basit bir yolu varmı...
Restantum cogniscutur Quantum deligutur

ete

10 tabanına göre sayılar nasıl oluşturuluyor onu düşünmen yeterli.
4598 için, önce TUS=4 , SAYI=SAYI*10+TUS=0*10+4=4,
Sonra TUS=5, SAYI = SAYI*10+TUS = 4*10+5 =45,
Sonra TUS=9, SAYI=SAYI*10+TUS=45*10+9=459,
Sonra TUS=8, SAYI=SAYI*10+TUS=459*10+8=4590+8=4598,

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

controller

önce her girilen karakteri bir string e eklersin. daha sonra bu string i integer a çevirirsin.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

mustafa_cmbz

ben enson bu tarz bişi ile uğraştım ama 4. rakamı girdikten soran değer sapıtıyordu...siteye yazdım kimse yardım etmedi...

ete

@Mustafa ,
Kullanılan değişken word cinsinden yani 16 bitlik bir değişken olur ise;
depolanacak en büyük sayı 65535 olur.  Bu sayı geçilirse sayının tamamlayıcısı alınır. 4 basamaklı bir sayıda bütün basamakları 9 (en büyük sayı) alsan bile sonuçta sayı 9999 olurki bu hiç bir zaman word değişken kapasitesini aşamaz.  Sayı 5 basamaklı olursa sorunlar çıkabilir.

Senin sorunun başka bir şey olmalı. Sorduğun soruyu  görmemişim  daha doğrusu hatırlamıyorum. Muhtemelen görmedim. Görseydim cevaplamaya çalışırdım.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

KAZIMUGUR

Birileri hesap makinası yapmış ve üşenmemiş paylaşmış,sağ olsunlar.
Bir de proteusun içerisinde vardı gibi.
IAR ile çoook basamaklı yazılabilirmişşş.  :)

http://www.4shared.com/file/83073663/d8bc7a2d/KeyPad.html

fractal

sayı float olursa ne yapabilriz.birde ben şunu yapmak istiyorum.keypad ile glcd ekaranında değer girmek istiyorum.bir tuşa basında değer girilecek yerde imcelec yanıp sönsünsün yada değer.sonra ramak girdikçe imlec kaysın.artırma azaltma tuşuna basılı tutunca hızlı artıp azalsın.bunları imlec hariç yapıyorum.ama program cok uzun oluyor.bunların basit ve pratik bir yolu yokmu?
Restantum cogniscutur Quantum deligutur

mustafa_cmbz

protonda şu şekilde adc deki değeri glcd ye yazabiliyorum...

adc_yaz:

VAR1 = ADIn 0      ' Place the conversion into variable VAR1
  DelayMS 200 
  Cls
DelayMS 250
Print  "VAR1= " , Dec VAR1
GoTo   adc_yaz

fractal

ccs c de sprintf komutu ile  karekter yapmak gerekiyor.ondan sonra ekranda yazılabiliyor.programın boyutu cok uzuyor.glcd paralel lcd gibi bazı komutlarda yok.imlec gibi.sayı girmek.sayının girişini tamamlamak.sayı giriş kısmına alt üst limit verme.işlemler cok uzuyor.asıl işlemden cok yer kaplıyor..
Restantum cogniscutur Quantum deligutur