Pic C girilen adım değerine göre lcd değerini arttırma :S

Katılım
26 Ocak 2007
Mesajlar
112
Puanları
1
Yaş
39
Arkadaşlar selamlar pic ile adc uygulaması yapmaya çalıyorum analogtan okuduğum ham değeri istediğim adımlarla artırmak ve azaltmak istiyorum mesela ben adımı 5 girersem lcd deki değerim 5 er 5 er artacak ve azalacak bir türlü algoritma oluşturamadım. ham değerim int32 türünde lcd de gösterilen değer de maksimum 6 haneli olacak.
Bir el atın da itelim :)))
 
mesela 1sn aralıklarla 5er 5er artırma gibi mi ? yapmak istediğinizi tam yazarsanız fikir olarak yardımcı olunabilir. eğer yazdığım gibiyse bir döngü içerisinde analog değeri okutup, ekran yazdırılan değeri güncelledikten sonra ilgili gecikme kadar bekletirseniz, döngü sürekli yapılacağı için işlem hallolmuş olur.

eğer söylediğim gibi değilse açık bir şekilde anlatırsanız fikren yardımcı olunabilir.
 
Gecikme yapmıyorum bekleme yapmadan okuduğum değeri ekrana benim verdiğim yürüme adımının katları olarak yazacak adc 0 ile 65535 arası okuyorum.
Sonra bu değeri kalibre ediyorum sonuc olarak ekrama maksimum 6 karakterli bir rakam yazılıyor.Bu değer mesela 123456 diyelim adım da 10 ise bu değeri 123460 olarak yazacak eğer adım 5 ise 123455 olarak yazacak heralde anlatabildim.
 
temp=adc_data%girilen_deger;
if(temp>(girilen_deger/2)) --> hata verirse if(temp>((int)girilen_deger/2)) olarak değiştir.
adc_data=adc_data+(girilen_deger-temp);
else
adc_data=adc_data-girilen_deger;
printf(lcd_putc,"ADC: %&u",adc_dat);

sanırım yukarıdaki kod işini görür. mod alma mantığı ile yukarıdaki koda benxer yapabilirsin.
 
düzeltiyorum :

temp=adc_data%girilen_deger;
if(temp>(girilen_deger/2))
adc_data=adc_data+(girilen_deger-temp);
else
adc_data=adc_data-temp;
printf(lcd_putc,"ADC: %&u",adc_dat);
 
Cevaplar için teşekkürler arkadaşlar sorunu çözülmüştür.
Çözümü;
temp=değer*adım //örneğin 123456/5=24691
sonuc=temp/adım //25691*5 = 123455
 

Forum istatistikleri

Konular
128,126
Mesajlar
915,242
Kullanıcılar
449,839
Son üye
Qkay

Yeni konular

Geri
Üst