dspic30f4013-adc-yardım

SALIH-46

Üye
Katılım
20 Mar 2008
Mesajlar
47
Puanları
1
Yaş
40
arkadaşlar dspic30f4013 ile 12 bitlik adc işlemi yapmaya çalışıyorum ama ccs c de yazdığım kodu bir türlü çalıştıramadım aşağıya kodları ekliyorum ve isisde bu pic olmadığı için şema ekleyemedim aşağıdaki kodda Lcd de karakterler düzgün bir şekilde görüntüleniyor d3'e bağlı ledde 2 saniyede bir yanıp sönüyor ve rb0(analog giriş) dan devamlı değişen bir değer okuyorum lcd'de yani düzenli ve doğru değerler okuyamıyorum
yardımcı olursanız sevinirim

****************
#ınclude <30f4013.h>
#device adc=12
#use delay (clock=4000000)
#use fast_io(d)
#use fast_io(f)
///////////////
#define lcd_enable_pın pın_f0 ////
#define lcd_rs_pın pın_f1 ////
#define lcd_rw_pın pın_f2 ////
#define lcd_data4 pın_f3 ////
#define lcd_data5 pın_f4 ////
#define lcd_data6 pın_f5 ////
#define lcd_data7 pın_f6
#ınclude <lcd.c>
/////////////////

unsigned int16 veri;
////////////////
void main()
{
set_tris_d(0x00);
output_d(0x00);
setup_adc(adc_clock_ınternal);
setup_adc_ports(all_analog,vss_vdd);
set_adc_channel(1);
lcd_init();
printf(lcd_putc,"\fdspic30f4013");
delay_ms(1000);
/////////////////
while(1)
{
output_high(pin_d3);
set_adc_channel(1);
veri=read_adc(adc_start_and_read);
delay_us(10);
printf(lcd_putc,"\fvadc=%u",veri);
delay_ms(1000);
output_low(pin_d3);
delay_ms(1000);
}
}
*****************
 
Arkadaşlar buna diyeceği olan yokmu...
 
Düzenli bir değer okuyamıyorum derken kaç bitlik bir kayma oluyor okumalarınızda? Birde analog kanala ne bağlı, ona göre yorum yapalım...
 
Hocam kanala potun orta ucu bağlı 1k lık aldığım değerler sürekli değişiyor atıyorum 1455, 758, 255, 2345 gibi yani yanlışda olsa sabit bir değer alamıyorum değerler devamlı değişiyor
 
setup_adc(adc_clock_ınternal);
setup_adc(ADC_TAD_MUL_4); //0-2-4-8-16-31 degerlerini kullanarak deneyebilirsin
 
teşekkür ederim hocam benim sorunum yanlş pinden değer okumaya çalışmammış ya ben takılmışım kanal 1 rb0 pini diye o nedenle yanlış yapıyormuşum rb0 pini 0. kanal o nedenle rb0 dan analog değeri verip
set_adc_channel(1) deyince yanlış oluyor haliyle çok basit bir şey ama dediğim gibi takılmışız ona set_adc_channel(0) yapınca düzeldi
kolay gelsin
 
kardeş yanlış anlaşılmasın ccs konusunda bende acemiyim yaklaşık 15 gundur ugraşıyorum
ve ilk programım 250 satırlık dspic30f2010 ile osilaskop idi ve çalıştırdım.
fakat yinede bir kaynak kitaba ihtiyacım var tavsiyeniz ne olabilir.
 
Hocam bu dspic hakkında pek türkçe kaynak yok ama istersen elimde ve sende nette aratırsan bulursun “Programming dsPIC (Digital Signal Controllers) in C” diye bir kaynak var ingilizce 289 sayfa ben tam olarak incelemedim ama çıktısını alıp baştan sona okuyacağım gibi yararlı bir kaynak gibi genel olarak dspic30f4013'ü anlatıyor vede örnekler var bence bu kaynak iş yapar gibi
kolay gelsin
 
evt bahsettiginiz kaynagı bende bulmuştum. tabiki yararlı oluyor
fakat ordaki örnekler mplabs c30 dilinde bu nedenle pek faydalanamadım
 
Bence hocam bu ccs c derleyecisiyle biraz program yazdıktan sonra bırakmak gerek bu derleyicinin hazır fonksiyonları filan çok üzel ama bir yerdede hazıra alışıyorsunuz ve arkada ne olup bittiğini tam olarak takip edemiyorsunuz ve gittikçe donanıma olan hakimiyetiniz kayboluyor bu nedenle bence bu derleyiciyi biraz kullandıktan sonra hitech-c derleyicisine filan geçmek lazım çünkü bu tür derleyicilerde herşeyi siz yapıyorsunuz ve donanımada hakim oluyorsunuz...
 

Forum istatistikleri

Konular
130,060
Mesajlar
932,639
Kullanıcılar
453,041
Son üye
İHSAN DOĞAN

Yeni konular

Çevrimiçi üyeler

Geri
Üst