adc okuma

Başlatan sdonmez, 30 Mayıs 2008, 15:18:00

sdonmez

CCS'de aşağıdaki gibi yazmış olduğum fonksiyon ile program içinde farklı kanalları okutuyorum.  

long read_analog_channel(int channel)
{
	int16 value;
	setup_adc( ADC_CLOCK_INTERNAL );      // ADC AYARI
	setup_adc_ports( ALL_ANALOG );        // TÜM ANALOG PORTLAR KULLANIMDA
	set_adc_channel(channel);             //
	value = read_adc();                   // DEĞERİ DÖNDÜR
	return value;
}


setup_adc( ADC_CLOCK_INTERNAL );
setup_adc_ports( ALL_ANALOG );
ifadelerini burda kullanmasak da olurdu, herzaman ayarlanmasına gerek yok.Ama sorun bu değil!

Program içinde de

new_speed=read_analog_channel(1);


gibi bir komutla istediğim kanalı okumak istiyorum fakat bu ifadeyi bir kere yazmam kanalın doğru okunması için yetmiyor. en az 3 defa arka arkaya aynı kodu sıralayıp okuduğumda doğru bir değer döndürüyor.

Ben mi yanlış yapıyorum acaba??
gözden kaçırdığım bi yer mi var anlamadım

Erol YILMAZ

@sdonmez;
  set_adc_channel(channel);             // 
   value = read_adc();                   // DEĞERİ DÖNDÜR


komutları arasına 50 uS lik gecikme koyarak deneyebilir misiniz ?

sdonmez

Allah razı olsun :)
düzeldi..

Teşekkür ederim