seri iletişimde program hatası YARARMAN

Katılım
25 Ocak 2012
Mesajlar
45
Puanları
1
arkadaşlar yarına vermem gerekn bir proje var ama program kodu hatalı gibi ben ve arkadaşlarım hatayı bulamadık devrenin adc degerini usbttl(proteusda olmadıgı için mux232 ve virtuel terminal kullandım) atması gerekiyor ama potansiyometre ile ne kadar degeri degiştirirsem degiştireyim adc degeri degişmiyor ve çıkısa "3 volt " degerini veriyor ve degişmiyor programı aşagıda veriyorum hata gören arkadaşlar yardımcı olursa cok sevinirim

Kod:
#include <p18F452.h>
#include <usart.h>
#include <adc.h>
#include <stdlib.h>
#include <delays.h>
#pragma config OSC=XT,PWRT=ON,WDT=OFF,LVP=OFF,DEBUG=OFF
#pragma config CP0=OFF,CP1=OFF,CP2=OFF,CP3=OFF,CPB=OFF,CPD=OFF
#pragma config WRT0=OFF,WRT1=OFF,WRT2=OFF,WRT3=OFF,WRTB=OFF,WRTC=OFF,WRTD=OFF
#pragma config EBTR0=OFF,EBTR1=OFF,EBTR2=OFF,EBTR3=OFF,EBTRB=OFF
unsigned long int gonder;
unsigned long int gelen;
unsigned long int bilgi;
void DelayFor18TCY( void )
{
Nop(); Nop(); Nop();
Nop(); Nop(); Nop();
Nop(); Nop(); Nop();
Nop(); Nop(); Nop();
}
void main()
{
//USART’ı ayarla
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF & // interrupt off
USART_ASYNCH_MODE & // asenkron mod
USART_EIGHT_BIT & // 8 bit veri
USART_CONT_RX & // sürekli mod
USART_BRGH_HIGH, // high speed mod
25 ); // baud rate için
OpenADC( ADC_FOSC_32 & ADC_RIGHT_JUST & ADC_8ANA_0REF,
           ADC_CH0 & ADC_INT_OFF );
TRISA=0x00;
TRISB=0x00;
TRISC=0x80;
while (1)
{
  Delay10TCYx(5);
  ConvertADC();
  while( BusyADC() );
  bilgi=ReadADC();
while( BusyUSART() );
putcUSART(gonder);
while( BusyUSART() );
gelen=getcUSART();
PORTB=gelen;


}
CloseADC();
CloseUSART();
}
 

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
Eve yeni geldim, şimdi bakacağım.
Proteus dosyasını ve MPLAB C18 projesini RAR'layıp buraya ekler misin?
 
Konu Sah
Katılım
25 Ocak 2012
Mesajlar
45
Puanları
1
hocam bişey daha sorucam arayüzden gelen string degerini picde nasıl int te ceviricem bilgin varmı
 

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
Şuan kodunu Protues'da çalıştırmaya çalışıyorum.
Hele bir çalıştırayım, orasını da hallederiz.
Daha önce C18 ile çalışmadım.
 
Konu Sah
Katılım
25 Ocak 2012
Mesajlar
45
Puanları
1
hocam cok teşekkür ederim sen bu projemde bana cok yardımcı oldun bitirme projem bu benım yarın sabaha veremezsem okul biraz sıkıntıya giriyor tekrar teşekkür ettim ilgilendigin için
 

kudretuzuner

Paylaşımcı üye
Katılım
28 Tem 2009
Mesajlar
906
Puanları
131
Merhaba
Kullandığınız dili bilmiyorum.Arayüzü çalıştıramadım.(vb.2008 express edition var ama açamadım)Ama prensip aynıdır.PC'den PIC'e yolladığınız string değeri olarak giden,klavye harflerinin,rakkamların sekizlik paketler halinde hex olarak PIC'e gider.Örneğin klavyeden (1) bir rakkamını yollarsanız HEX'31' veya B'00110001' gibi gider.PIC'İn yazılımının da bu gelen değeri işlemesi mümkündür.Tersi ise PIC'ten PC'ye yazılım ile (1) bir rakkamını yollarsanız PC'de DEC"49" (desimal olarak okursunuz)PC tarafında da gelen bu dec değerini yine basit bir iki kod ile (1) rakkamı olarak gösterirsiniz.Kolay gelsin.Not:İsiste Kristal frekansınız 1mhz olarak okudum.Dediğim gibi programın içindeki baudrate için BRGH hıgh ve SPBRG yi 25 okudum.Bu yazılım asm de 4mhz kristale ve 9600'e denk gelmesi gerekir diye düşünüyorum.Dediğim gibi dile tam hakim olmadığım için emin de değilim.
 
Son düzenleme:

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
Sen sürekli mi ADC değerin bilgisayara gönderilmesini istiyorsun?
Yoksa bilgisayardaki yazdığın yazılımdaki, ADC Değeri düğmesine bastığında mı ADC değerini okumak istiyorsun.
Ayrıca DAC Değeri düğmesine de basınca, yandaki kutuya girdiğin voltajı PIC devresinde DAC çıkışında görmek istiyorsun.
Değil mi?
 
Konu Sah
Katılım
25 Ocak 2012
Mesajlar
45
Puanları
1
kullandıgım dil C# arayüzde verdiğin bilgiler faydalı oldu teşekkur ederim
 
Konu Sah
Katılım
25 Ocak 2012
Mesajlar
45
Puanları
1
butona bastıgım zaman adc degerini arayüzde butona bastıgım zaman dac degerini devrede görmek istiyorum olabilirmi
 

Forum istatistikleri

Konular
122,207
Mesajlar
861,958
Kullanıcılar
438,707
Son üye
ozayblgn1

Yeni konular

Üst