CCS C ile ADC okuma ve lcd de gösterme sorunu!!!

Başlatan eemuratozan, 31 Mart 2012, 11:57:53

eemuratozan

arkadaşlar bişi denemek için adc portundan okuduğum değeri lcd de görmek aynı zamanda bu değere göre pwm sinyalini kontrol etmek istiyorum ancak potansiyometre değerini değiştrince örneğin sıfırdan başladım yukarı doğru gittkçe lcd de sadece 0 64 128 ve 192 değerleri görünüyor üstelik ardışık olarak da değil karışık bir sırayla görünüyor bunun sebebi nediri işte kodlarım;
#include <Kontrol Lab.h>

#use delay(clock=4000000)
#define use_portd_lcd TRUE
#include <LCD.C>
#use fast_io(b)
#use fast_io(d)
#use fast_io(a)

unsigned int adc_girisi;


void main()
{

   setup_adc_ports(AN0_AN1_AN3);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_ccp1(CCP_PWM);
   setup_timer_2(T2_DIV_BY_4,255,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   
   
   set_tris_d(0x00);
   set_tris_b(0x00);
   set_tris_a(0xff);
   
  
     
     set_pwm1_duty(100);
     
     output_high(pin_b0);
     output_low(pin_b1);
     lcd_init();
   while(1)
   {
     
     
     set_adc_channel(1);
     delay_us(20);
     adc_girisi=read_adc();
     set_pwm1_duty(adc_girisi);
     lcd_gotoxy(1,1);
     printf(lcd_putc,"{\fADC : %u ",adc_girisi);
     delay_ms(100);
     
   }
}
[code]
I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

eistain_54

#1
unsigned int16 adc_girisi;

printf(lcd_putc,"ADC2=%4ld",adc_girisi);

şeklindeki müdahelelerin düzeltecek sanıyorum...

Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

skara1214

Herkes ölür ama herkes gerçekten yaşamaz

eistain_54

Alıntı yapılan: skara1214 - 31 Mart 2012, 12:18:57
%ld değil %lu olmalı doğrusu

Evet şimdi fonksiyona tekrar baktım da haklısınız.Ama ben sorun yaşamamıştım.Bende güncelleyip deniyeceğim...Teşekkürler.
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

eemuratozan

dediğiniz gibi yaptım ancak sonuç yine aynı sadece sayılar büyüdü ve bi kaç değişik sayı daha geldi :) yani 0 dan başlıo 7000 falan oluo sonra tekrar sıfıra düşüo daha pot un yarısına gelmeden nie böyle oluyo elimde örnekler var aynı yazım herşey aynı serdar çiçek de aynı yazmış neden olmuyo anlamıyorum
I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

skara1214

 %90 ccs c versiyonundan kaynaklı 4.093 te unsigned diye tanımladığım değişken "-" değer alıyordu ilginç bir şekilde. 4.107 yi kullanıyorum su an gayet stabil(sizin probleminiz yüksek bir ihtimal lcd.c dosyasından kaynaklı)
Herkes ölür ama herkes gerçekten yaşamaz

serhat1990

Ben 4.104 kullanıyorm ve %4Lu falan yapıyorum  10 bit adc için hiç bir sıkıntı yaşamadım yalnız sormak istedigim birsey var. Kaç bit adc kullandıgını kodlarda göremedim. acaba h.dosyası içindemi ?

eemuratozan

evet 8 bit kullanıyorum saçam olan da şu ben 8 bit seçtim maximum 255 değeri alabilir ben adc_girisi değişkenimi long dersem 255 in çok çok üstünde değerler alıyor yani bi nevi adc yi otomatik olarak kaç bitlik olacağını kendi belirliyo.bu çok saçma işin içinden çıkmadım projede seçtim 8 bit die ancak programa #device adc=8 yazınca kabul etmio program
I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

serhat1990

o zaman long seçme %3u yazarsan sıkıntı yaşamassın .

https://www.picproje.org/index.php/topic,38490.0.html bu sayfada kendi hazırladıgım kodlar var hepsi calısır durumda ve denendi bu tarz uygulamalarımda var. İncelemende fayda var 8 bit ve 10 bit olarak yaptım . İyi çalışmalar.

eemuratozan

malesef %3u da çalışmadı hep aynı saçma değerler çıkıor bi sürü örnek var bakıp neredeyse aynısını yazıorum işte olmuyo potansiyometre mi saçmalıo acan çünkü ben pot-hg yi seçiorum ama pot-lin i seçenler var ki o pot-lin bende yok
I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

serhat1990

Sanmam eger öyle birseyden süpheleniyorsan bile pot cıkısını ölc gördüğün gerilimde bir hata varmı incele derim.

eemuratozan

evet dediğiniz gibi aslında değişik volt değerleri verip lcd ye baktım yok olmuo kodum mu yanlış acaba dicem daha ne kadar basit yazılabilir ki ?
I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

justice_for_all

Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

eemuratozan

pot değeri 5k ama onu da farklı değerler için denedim olmadı 1k yaptım 10 k yaptım yok sonuçta üzerine düşen gerilim değişmicek yani?
I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

eistain_54

Hocam sen proteus ile mi deniyorsun?
"çünkü ben pot-hg yi seçiorum ama pot-lin i seçenler var ki o pot-lin bende yok"
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!