Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: mustafa_cmbz - 23 Ocak 2019, 01:11:35

Başlık: 12F683 ADC ile GPIO.1 input olarak çalışmıyor?
Gönderen: mustafa_cmbz - 23 Ocak 2019, 01:11:35
  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.

Başlık: Ynt: 12F683 ADC ile GPIO.1 input olarak çalışmıyor?
Gönderen: ipek - 23 Ocak 2019, 02:49:08
All_Digital = TRUE  denedinizmi ?
Başlık: Ynt: 12F683 ADC ile GPIO.1 input olarak çalışmıyor?
Gönderen: RaMu - 23 Ocak 2019, 03:51:44
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ı.

Başlık: Ynt: 12F683 ADC ile GPIO.1 input olarak çalışmıyor?
Gönderen: Maxim - 23 Ocak 2019, 09:31:30
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
Başlık: Ynt: 12F683 ADC ile GPIO.1 input olarak çalışmıyor?
Gönderen: ete - 23 Ocak 2019, 16:02:19
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