30f2020 adc ölçmüyor

Başlatan vardal57, 25 Aralık 2016, 12:02:46

vardal57

Arkadaşlar merhaba dspic30f2020 kullanıyorum adc kanallarından hiç birisi ölçüm yapmıyor nedendir sizce ?

#include<30F2020.h>
#device ADC=10
#device *=16
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOWRT                    //Program memory not write protected
#FUSES FRC_PLL               //Internal Fast RC oscillator with PLL
#FUSES NOCKSFSM                 //Clock Switching is disabled, fail Safe clock monitor is disabled
#FUSES FRANGE_LOW              //Frequency Range for FRC 14.55MHz
#FUSES OSCIO                  //OSC2 is clock output
#FUSES NOPR                     //Primary oscillaotr disabled
#FUSES NOWINDIS                 //Watch Dog Timer in Window mode
#FUSES WPRES32                //Watch Dog Timer PreScalar 1:128
#FUSES WPOSTS1                 //Watch Dog Timer PostScalar 1:32768
#FUSES PUT2                   //Power On Reset Timer value 128ms
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES ICSP1                    //ICD uses PGC1/PGD1 pins




 

#use delay(clock=58200000)      // =14.55MHZ *4 (interne rc oscillator

#include <30F2020LCD.c>
   

#word ADCBUF7 = getenv("SFR:ADCBUF7") 
#word ADPCFG= getenv("SFR:ADPCFG")
#word ADSTAT= getenv("SFR:ADSTAT")
int16 hamakim = 0 ;
int16 hamakima = 0 ;


void main()
{
SETUP_ADC_PORTS(sAN6);
SETUP_ADC(ADC_CLOCK_DIV_32|ADC_TAD_MUL_16);



set_tris_a(0b0);
set_tris_b(0b10000000);
set_tris_d(0b0);
set_tris_e(0b00000000);
set_tris_f(0b000);


lcd_init();// BU KODU YAZMAK MECBURİİİİ
delay_ms(500);

basla:

set_adc_channel(san6);
delay_us(50);

hamakim = read_adc();
delay_us(50);




lcd_gotoxy(1, 4);
printf(lcd_putc,"AMPd  = %04lu      ",hamakim,);

goto basla;

}

vardal57

Yokmu forumda bunu bilen birisi ?

Cemre.

Hocam debug üzerinden de ayrıca kontrol ediyor musunuz hamakim değişkenini? Belki de lcd fonksiyonlarınızda sorun vardır.

vardal57

Yok hocam lcd fonksiyonumda sorun yok 30f2020 yi söküp yerine 2010 takıyorumçatır çatır ölçüyor adc yı bu işlemcide bi özellik var onu kapatmam gerekiyor ama ne özelliği onu bulamıyorum kaç gundur kafayı yedirtecek bana microchip ten soğuttu beni saç baş yolduruyor delirmek üzereyim !!

xoom

SETUP_ADC_PORTS(sAN6);

30f2020 serisinde adc kanallları çift olarak çalışıyor.. AN2, AN3 1.çift gibi..  yani tek tek kullanamıyorsunuz. kodunuzu buna göre düzeltirseniz çalışır.


vardal57

O şekildede denedım ama yıne çalışmıyor hocam aynısını yaptım çift olarak çalıştıgını bılıyorum ama sonuç sıfır hep sıfır olcuyor tum kanallar

zamzam23

fuses lere odaklanın bence. olabildiğince basit tutun ilk etapta. wdt yi put yi kapatın. pll i kapatın normal bi çalıştırın bakalım.

vardal57

aynı şekilde yaptım hocam sıgortaları kapatım açtım değişen bişey yok sankı pınlerde bır özellık var o engellıyor gıbı ama bulamadım hala ... anlamadıgım konu su 2010 da takır takır ölçüyor istediğim gibi yapıyorum bu çok lanetli bir işlemci

vardal57

Şu anki geldiğim durum ekranda bir değer gösterdi 1023 yazıyor ama sabit kalıyor sanki adc bir an okudu ve kesildi