16f877a ADC sorunu

tpspt

Üye
Katılım
28 Haz 2010
Mesajlar
3
Puanları
1
Yaş
33
merhaba,
bir eğim sensörünün değerlerini okumak için aşağıdaki programı denedim. fakat "acı" değeri sürekli değişiyor. biraz araştırdım neden olabilir diye. okunan analog değerlerin ortalamasını alma gibi şeyler vardı. ama benim okuduğum değerler hiç de birbirine yakın değil. hatta okuması gereken max. değeri bile aşmayı başarıyor.

sırayla okuduğu değerler;
35,
125,
25,
180,
520,
...

farklı programlar da denedim, hazır yazılmış olanları da denedim aynı sonuç çıkıyor. hatta sensör bağlı değilken bile bu şekilde çalışıyor. ne yapabilirim? yardımcı olursanız çok sevinirim...

Kod:
TRISD=000000
TRISA=000001
@ DEVICE pic16F877A
@ DEVICE pic16F877A, WDT_on
@ DEVICE pic16F877A, PWRT_ON
@ DEVICE pic16F877A, PROTECT_OFF
@ DEVICE pic16F877A, XT_OSC
cmcon=7
DEFINE    ADC_BITS    10
DEFINE    ADC_CLOCK    3
DEFINE    ADC_SAMPLEUS    100
DEFINE LCD_DREG    PORTD
DEFINE LCD_DBIT    4 
DEFINE LCD_EREG    PORTD
DEFINE LCD_EBIT    3 
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2
DEFINE LCD_BITS    4 
DEFINE LCD_LINES 2
ADCON1=001110
HAM VAR WORD
ACI VAR WORD
LCDOUT $FE,1
PAUSE 200
BASLA:
ADCIN 0,HAM
DONGU:   IF ADCON0.2=1  THEN DONGU
HAM=HAM+1
ACI=(HAM */ 45)
LCDOUT $FE,$80,"ACI=",#ACI
PAUSE 500
GOTO BASLA
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…