Protonda portA0, A1 ADC diğerlerini nasıl dijital yaparız

Başlatan Murat Mert, 06 Eylül 2009, 11:42:47

Murat Mert

S.A.
Sn. Arkadaşlar 18f452 PortA.0 ve PortA.1 analog giriş olacak şekilde ve diğer kalan PortA pinlerinin uçlarını dijital giriş olacak şekilde nasıl ayarlarız?
Aşağıdaki kod ile bayağ uğraştım ama olmadı:
Device = 18F452			
        XTAL = 20				
        ALL_DIGITAL= TRUE	
		
        Declare	LCD_DTPIN PORTB.0	  
        Declare	LCD_RSPIN PORTB.4	  
        Declare	LCD_ENPIN PORTB.5	 
        Declare LCD_LINES 4		  
		Declare ADIN_RES 10 			  
		Declare ADIN_TAD FRC 			  
		Declare ADIN_DELAY 50 			 
		TRISA = %00001111 				 
		ADCON1 = %10000010 				  
		Dim AI1 As Word				  
	 	Dim AI2 As Word
	 	Input PORTA.2
	 	Symbol BUT = PORTA.2
	 	Symbol LED = PORTD.2
	 	
BASLA:	 	
        AI1 = ADIn 0 
        AI2 = ADIn 1 
        						  
        Print At 1,1,"DEGER1:",Dec AI1,"  "	
        Print At 2,1,"DEGER1:",Dec AI2,"  "
        If BUT = 1 Then 
        High LED
        Else
        Low LED
        EndIf
        GoTo BASLA
mert07

Murat Mert

S.A.
Sn. Arkadaşlar akşam çok bakmıştım ama demekki yorgun kafayla dinlenmiş kafa farklı oluyor görememişim. Cevap bu linkteymiş deneyeceğim.

http://picproje.org/index.php/topic,22526
mert07

dombilik

PCFG (3,2,1,0)=0100 (AN0,AN1,AN3 Analog) diğerleri digital
PCFG (3,2,1,0)=0101 (AN0,AN1 Analog AN3=+Ref) diğerleri digital


Program başındaki ALL_DIGITAL TRUE komutuna gerek yok.Tabi yukarıdaki
ADCON1 tanımlamasını yaptığınız takdirde.
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

dombilik

Ben cevabı yazarken sizde cevabı bulmuşssunuz  :)
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

Murat Mert

Sn. Arkadaşlar aşağıdaki kodu derledim tamam.

Device = 18F452			
        XTAL = 20				
        ALL_DIGITAL= TRUE	
		
        Declare	LCD_DTPIN PORTB.0	  
        Declare	LCD_RSPIN PORTB.4	  
        Declare	LCD_ENPIN PORTB.5	 
        Declare LCD_LINES 4		  
		Declare ADIN_RES 10 			  
		Declare ADIN_TAD FRC 			  
		Declare ADIN_DELAY 50 			 
		TRISA = %00001111 				 
		ADCON1 = %10001110 				  
		Dim AI1 As Word				  
	 	Dim AI2 As Word
	 	Input PORTA.2
	 	Symbol BUT = PORTA.2
	 	Symbol BUT1 = PORTC.2
	 	Symbol LED = PORTD.2
	 	
BASLA:	 	
        AI1 = ADIn 0 
        AI2 = ADIn 1 
        						  
        Print At 1,1,"DEGER1:",Dec AI1,"  "	
        Print At 2,1,"DEGER1:",Dec AI2,"  "
        If BUT = 1 Or BUT1=1 Then 
        High LED
        Else
        Low LED
        EndIf
        GoTo BASLA


Sn. dombilik ilginiz için çok teşekkür ederim. Kolay gelsin.  :D
mert07

dombilik

@ Mert07 arkadaşım..

ADCON1 registerinde yaptığınız seçim ile sadece bir kanalı (AN0) analog
olarak yapılandırmışssınız.Fakat AN0 ve AN1 olarak iki ayrı analog kanal okumaya çalışıyorsunuz.Bir yanlışlıkmı var yoksa benmi karıştırdım..
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

Murat Mert

Alıntı yapılan: "dombilik"@ Mert07 arkadaşım..

ADCON1 registerinde yaptığınız seçim ile sadece bir kanalı (AN0) analog
olarak yapılandırmışssınız.Fakat AN0 ve AN1 olarak iki ayrı analog kanal okumaya çalışıyorsunuz.Bir yanlışlıkmı var yoksa benmi karıştırdım..

Sn. Dombilik doğrudur bende zaten AN0 ve AN1 girişlerini kullanıp diğerlerini dijital kullanacağım. İlgin için teşekkürler.  :D
mert07