analog ölçüm hatası

Başlatan exper, 06 Haziran 2012, 12:33:24

exper

arkadaşlar 5 adet adc ölçmem gerekiyor
ADCON1 =%1000000   yazmama rağmen
adin  0 , 1, 2, 3    ölçüyor
ADIn 4  hep 0 ölçüyor  eksik mi var
tşk...

ferit06

sorunuza cevap verebilmek için şu an sizin yanınızda olup, ne yaptığınıza bakmak gerekir.

- Devre şeması   ..... Burada yok

- Kullanılan işlemci..... Burada yok

- Yazdığınız çalıştırmaya çalıştığınız program  ..... Burada yok.


öyle ise haliyle size cevap ta yok...

exper

kardeş devreye gerekyok yazılıma da gerek yok  ama yazayım

Device 16F876
  XTAL = 4 'MHZ
  @CONFIG_REQ
  @__CONFIG  CP_OFF & PWRTE_ON & WDT_OFF & XT_OSC  &  BODEN_OFF  &  LVP_OFF ;& MCLRE_OFF
'-----------------****************************************************************       
Declare LCD_DTPIN      PORTC.4
  Declare LCD_RSPIN      PORTC.2
  Declare LCD_ENPIN      PORTC.3
  ' Declare LCD_rwPIN      PORTa.2
  Declare LCD_LINES   2
  Declare LCD_INTERFACE   4
  Declare LCD_TYPE ALPHA   

Declare ADIN_RES 10       ' 10-bit result required
  Declare ADIN_TAD    FRC      ' RC OSC chosen   
  Declare ADIN_STIME 50     ' Allow 50us sample time
                      DelayMS 300
   ADCON1 =%1000000

Dim adc1 As Word
  Dim adc2 As Word       
   Dim adc3 As Word
    Dim adc3 As Word     
     Dim adc4 As Word

TRISA =%00111111

basla:

               adc1 = ADIn 0
               adc2= ADIn 2
               adc3 = ADIn 3
               adc4 = ADIn 3
               adc5 = ADIn 4

       Print $FE,$80, dec  adc1 ,dec adc2 ,dec  adc4 ,dec adc4 ,dec  adc5
goto basla
end

ferit06

#3
istediğim bilgilerin gerekli olmadığını söylüyorsun da ben nereden bileceğim senin kullandığın işlemcini. 

kullandığın işlemcide AN4 aynı zamanda C2OUT yani 2 Nolu comparator çıkışı olarak kullanılıyor. Comparatorları kapatıp bir dene bakalım ne olacak.

ete

16f876 da komparatör yoktur. Yalnızca 16F876A serisinde komparatör vardır.
Bana kalırsa sorun ADCON1 registerinin 7 bit olarak tanımlanmasından kaynaklanıyor.
ADCON1=%1000000  yerine
ADCON1=%10000000 yazılmalı.
Ayrıca ;
Print $FE,$80, dec  adc1 ,dec adc2 ,dec  adc4 ,dec adc4 ,dec  adc5
komut satırında her bir adc değeri 3 hanelik yer alsa  15 karekter eder bunlar ekrana sığar.
Ancak okunan değerler 1000'üzerinde olunca karekter sayısı 20ye çıkar ve bu değerler ekranda gösterilemez.

Başaka da bir hata göremedim.

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

exper

ete hocam
ADCON1 =%10000000   
             
adc1 = ADIn 0
               adc2= ADIn 2
               adc3 = ADIn 3
               adc4 = ADIn 3
               adc5 = ADIn 4

       Print $FE,$80, dec  adc1 ,dec adc2 ,dec  adc3
       Print $FE,$c0,dec adc4 ,dec  adc5
       şeklinde değiştirdim    yine adc5 hep 0

  adc5 = ADIn 5 şeklindede denedim yine olmadı
  ADIn 4       ADIn 5   hep 0 okunyor
tşk...


ferit06

PIC lerdedi harflerin yalnızca hız ile ilgili olduğunu zannediyordum. Donanım ile ilgisi olduğunu bilmiyordum. Ben bilgisayarda kayıtlı 876A data sheet e bakmıştım...

exper'e: Değil şema, program, bakınız işlemcinin bilinmesi ne kadar önemli olduğu buradan anlaşılmıştır.

Tüm soru soranlar nedense şema, program bunları vermeyerek soru soruyorlar. Alacakları cevaplarda ona göre olabilecektir.

exper

arkadaşım özür olsun
ben erindiğimden değil oraya kadar olan kısmını biliyor kabul ediyorum ama haklısın pic e göre değişir herşey