18F4520 de AD Cevrim problemi?

Yuppi007

Üye
Katılım
2 Ocak 2009
Mesajlar
4
Puanları
1
18f4520 nin porta.3 yani an3 ün herhangi bir şekilde 2,49v a sınırlaması varmı?.
Şöyleki bu portu vref olarak programladığım zaman 3,3 olan vref gerilimine göre diper kanallarda AD çevrimi oluyor.Lakin bu portu vref den AN3 olarak gelen gerilimi okumak istediğimde gerilim 2,49 v dan sonra sabit kalıyor.Gerilimi arttırsamda ekranda 2,49 okuyorum.(ham degerde değişmiyor)Böyle bir sorun yaşayan veya cözümünü bilen varmıdır.Takıldım kaldım.
 
devre semasını gönerirsen yardımcı olamaya çalışalım. bildiğim kadarıyla voltaj sınırlaması olmaması lazım devrende bir sorun olabilir yada okuma ile ilgili yazılımda bir sorun olabilir nereden ölçüm yaptığını ve nasıl bu kanıya vardığını anlayamadım açıklamayı biraz daha ayrıntılı veya çizimli gönderirsen daha iyi yardımcı olunabileceğini düşünüyorum ben daha önce benzer sorun yaşadım fakat benim sorunum tamamen yazlımdaki çarpma ve bölme ile alakalıydı, kolay gelsin
 
Devre şemasını şöyle düşünün 1k üzerinden lm317 ye bağlı.Diğer analog hatlarımın 2 sinde lm34 2 sindede termo kupul bağlamak için opamplı bir devre var.Proteusdaki similasyon normal.,
Device = 18F4520
Declare XTAL=20
OPTIMISER_LEVEL = 6
DelayMS 50

ADCON1 = %00011010
ADCON2.7 = %1
'ADCON1 = %01011000
'ADCON2 = %01000001
TRISC = %00000011
TRISB = %11111111
TRISD.0= %0
TRISA = %00101111
LATA =%00000000
LATB = %00000000
LATC = %00000000
LATD = %00000000
LATE = %0000
Declare LCD_DTPIN PORTD.4
Declare LCD_ENPIN PORTD.3
Declare LCD_RSPIN PORTD.2
Declare LCD_RWPIN PORTD.1
Declare LCD_INTERFACE 4
Declare LCD_LINES 4
Declare LCD_TYPE 0
LCD_DTPORT = PORTD
Declare STACK_SIZE=90
Declare ADIN_RES 10
Declare ADIN_TAD 64_frc
Declare ADIN_STIME 100
Symbol SEC =PORTB.6
Symbol YUKARI=PORTB.7
Symbol ASAGI =PORTB.5
Dim Temp5 As Word
Dim Temp6 As Word
Dim HTemp5 As Word
Dim HTemp6 As Word
Dim HTemp7 As Word
Dim HTemp8 As Word
Dim Temp7 As Byte
Dim Temp8 As Byte
Dim YPOS As Byte
Dim VREF As Word
'VREF=ERead $0A
PORTA=0
PORTB=0
PORTC=0
PORTD=0
Basla:
While SEC=1
GoSub oku
Print At 1,1,"Tr1 :",DEC3 Temp5,$DF,"C ",DEC4 HTemp5
Print At 2,1,"Tr2 :",DEC3 Temp6,$DF,"C ",DEC4 HTemp6
Print $FE,$90,"Lm1: ",DEC2 Temp7,$DF,"C ",DEC4 HTemp7
Print $FE,$d0,"Lm2: ",DEC2 Temp8,$DF,"C ",DEC4 HTemp8
Wend
Cls
DelayMS 150
While SEC=1
ADCON1 = %00001010
VREF=ADIn 3
VREF=(VREF*/500)>>2
Print At 1,1,"Tr1 :",DEC3 Temp5,$DF,DEC4 HTemp5," "
Print At 2,1,"Tr2 :",DEC3 Temp6,$DF,DEC4 HTemp6," "
Print $FE,$90,"Isi1:",DEC2 Temp7,$DF,DEC4 HTemp7," "
Print $FE,$d0,"VREF : ",DEC3 VREF," "
' If YUKARI=0 Then VREF=VREF+1
' DelayMS 100
' If ASAGI=0 Then VREF=VREF-1
' If VREF>501 Then VREF=1
' If VREF<1 Then VREF=500
ADCON1 = %00011010
GoSub oku
Wend
' EWrite $0A,[VREF]
Cls
GoTo Basla
oku:
DelayMS 1
HTemp5=ADIn 2
Temp5=(HTemp5*/VREF)>>2
DelayMS 1
HTemp6=ADIn 4
Temp6=(HTemp6*/VREF)>>2
DelayMS 1
HTemp7=ADIn 0
Temp7=(HTemp7*/VREF)>>2
DelayMS 1
HTemp8=ADIn 1
Temp8=(HTemp8*/VREF)>>2
DelayMS 1
Return
End
Program bu.Ekleyebilirsem proteus dosyasınıda eklemeye çalışacam.Ama Neden 2,49 dan sonrası proglem çözemedim.Aynı yazılım similasyonda problemsiz.
 
Simulasyon dosyanizi(section file olarak) ve derlediginiz hex uzantili(nadirde olsa hatali derleme olabilir) dosyayi eklerseniz incelememiz cok daha kolay olur.
 

Forum istatistikleri

Konular
128,269
Mesajlar
916,348
Kullanıcılar
450,090
Son üye
emre.6831

Yeni konular

Geri
Üst