Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

18f87k22 adc problemi

Başlatan bulut_01, 06 Haziran 2017, 18:01:40

bulut_01

iyi günler picproje ailesi 18f87k22 nin adc aktif edip veri okuyamadım proteusda hata msj ile karsılasıyorum hatamı göremedim yardımcı olursanız sevinirim.

void main(){ 

setup_adc(ADC_CLOCK_DIV_32|ADC_TAD_MUL_4);

setup_adc_ports(sAN0|VSS_VDD);

setup_comparator(NC_NC_NC_NC);

..................

while(true){

ham=input(pin_a0);
set_adc_channel(0);
delay_us(30);
ham=Read_adc();}}


YENİLMEZ..

bulut_01

Bir fikri olan yok mu arkadaslar  :)
YENİLMEZ..

sadogan

Trisden adc girisini input. Yapmayi deneyin

bulut_01

Sadogan hocam input yaptım ve ne yaptıysam resimdeki hatayla karşılasıyorum bir yolunu bulamadım nerde hata yaptıgımın.
YENİLMEZ..

tekosis

Problem Referans ayarlarından kaynaklanıyor gibi. Setup_vref komutunu bir inceleyin.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

ete

Sorunun kaynağı kesinlikle ADC ref voltajı. + ref voltajı 0V diyor bağıra bağıra. İşlemcinin data sheet'ini açarsanız ADCON1 registerinin bu işi ayarladığını görebilirsiniz. Register bitlerine bakacak olursak;
Bit7-6    Trigger Select yapıyor. Bilmediğim bir özellik Ancak sanırım RTCC seçilmeli ve bu bitler %11 yapılmalı
Bit 5-4   00 verilerek VDD seçilmeli (ADCON1=%1100...... oldu)
Bit 3       0 verilerek VSS negatif voltaj ref olarak seçilmeli (ADCON1=%11000....)
Bit2-0     Analog negatif kanal seçim bitleri.  000 verilerek negatif tarafı VSS ye bağlanmış oluyor. Böylece tek kanal ADC ölçümü yapabiliyorsunuz. Sonucta ADCON1 değeriniz %11000000 şeklinde verilmelidir.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

bulut_01

@ete hocam öncelikle tsk ederim verdiğiniz bilgiler için ref seçim işini asagıdaki komut yapmıyor mu vss_vdd demişim.
setup_adc_ports(sAN0|VSS_VDD);
YENİLMEZ..

ete

Bana kalırsa o komut pek çok standart pic için seçim yapar ama bu özel bir işlemci. Bunda çalışırmı emin değilim ve zaten çalışmadığıda görülüyor öyle değilmi.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Ersin

output_float(PIN_A1);


ADC pinin  hangisi ise ınu yaz setup_adc den sonra.

bulut_01

Tşk ederim arkadaşlar problem AVDD pinini +5v baglamadıgım içinmiş bu pic ile ilk defa ugrasıyorum acemilikler oluyor herkeze çok tşk ederim  :)
YENİLMEZ..