12F683 ADC ile GPIO.1 input olarak çalışmıyor?

Başlatan mustafa_cmbz, 23 Ocak 2019, 01:11:35

mustafa_cmbz

  Config CPD_OFF, CP_OFF,MCLRE_OFF,PWRTE_OFF,WDT_OFF	,INTRC_OSC_NOCLKOUT
  Device = 12F683
  Xtal   = 4 
  
  TRISIO  =  %00000011       '--------- GPIO.0 ve GPIO.1 portu input
  
  Declare Adin_Res 10       ' 10-bit result required 
  Declare Adin_Tad FRC      ' RC OSC chosen 
  Declare Adin_Stime 50     ' Allow 50us sample time
  
  
  
  ADCON0  =  %10000011
  ANSEL.0 = 1                ' GPIO.1 Analog secildi, diğerleri digital
  ANSEL.1 = 0                ' 
  ANSEL.2 = 0
  ANSEL.3 = 0

12F683 için sadece GPIO.0 NOLU girişini adc olarak kullanmak istiyorum.Diğerlerinin digital kalmasını istiyorum ama ne yaptıysam GPIO.1 ya bağladığım butonu çalıştıramadım.

Neyi gözden kaçırıyorum bilemedim.Datasheetteki adc ayarlarını denedim kanal seçiyorum vs. yemiyor.


ipek


RaMu

Yaptıklarına ek olarak,
datasheet te gözüme çarpan, yapılması gerekli görünen şunalr var:

9.1.3 ADC VOLTAGE REFERENCE
VCFG bit of the ADCON0 ...

REGISTER 9-1: ADCON0: A/D CONTROL REGISTER 0
ADCON.VCFG = 0 >>>ADC gerilim referansı Vdd (Mcu besleme) pini ne ise o olsun,
[1 yapılırsa Vref pini ADC referans gerilimi olarak alınır]

4.1 GPIO and the TRISIO Registers "NOTE kısmı"
Alıntı YapNote: The ANSEL and CMCON0 registers must
be initialized to configure an analog
channel as a digital input. Pins configured
as analog inputs will read '0'

REGISTER 8-1: CMCON0: COMPARATOR CONFIGURATION REGISTER
CMCON0 = 0x07
olmalı.

Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Maxim

ben bu şekilde 2 adc girişli olarak kullanıyorum.

Device 12F683
Declare Xtal=8
Config FCMEN_OFF,IESO_OFF,BOD_ON,CPD_OFF,CP_ON,MCLRE_OFF,PWRTE_ON,WDT_OFF,INTRC_OSC_NOCLKOUT

OSCCON.6=1
OSCCON.5=1
OSCCON.4=1
OSCCON.3=0
OSCCON.2=1
OSCCON.1=0
OSCCON.0=1

TRISIO = %00111110
GPIO=%00000000
ADCON0=%10000101
ANSEL =%00010010

OPTION_REG.7=0
WPU=%00110000

Declare Adin_Res 10
Declare Adin_Tad FRC
Declare Adin_Stime 50

ete

Sorun, önseçimli olarak aktif olan komparatörü iptal etmemiş olmanız sanırım.
CMCON=7 komutunu programın başına eklemeniz yeterli olacaktır. Bu eklenti en azından GPIO.1 pinini digital giriş olarak kullanmanızı sağlayacaktır. Aynı pine pullup verebilmeniz için WPU.1=1 demeniz gerekiyor. Aynı zamanda Option_Reg.7=0 da demek gerekir.


Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com