16f72 adc kullanımı

Başlatan blueboard, 17 Nisan 2019, 21:20:47

blueboard

Ete Hocam, uzunca bir süreden sonra yine yardımınıza ihtiyaç duydum. Bir arkadaşımdan 100-150 tane civarı 16F72 aldım. Benden istenen 16f72'nin A0 pininden analog giriş yapılarak  ADC çevrimi oluşturulması ve ADC sonucuna göre c0-c5 pinleri lojik1 durumuna alınması. Datasheet'ini inceledim, bulabildiğim tüm kaynakları okudum ve bir şeyler yazmaya çalıştım. Mutlaka hata/hatalarımın olduğunu düşünüyorum.İşin en kötü tarafı ise Proteus'ta 16F72 bulamıyorum . Bundan dolayı da yazdıklarımın doğru olup olmadığını bilemiyorum. devrede harici 4 MHz kristal kullanılacak.

Sizden ricam , sizi çok üzmeyeceksem yazdıklarımı kontrol eder misiniz? Teşekkür ederim.




PortA=0:TrisA=%00001011 'ANALOG GİRİŞ A0'DAN OLACAK ' 1 olan zorunlu analog girişlere aitdir.
PortB=0:TrisB=0 'portB yi sıfırladık ve pinleri çıkış olarak ayarladık
PortC=0:TrisC=0 'portC yi sıfırladık ve pinleri çıkış olarak ayarladık

ADCON0=%01000000
ADCON1=%00000100


;ANSELH=0  'B portu Analog pinler iptal  BU İŞLEMCİDE ANSEL REGİSTERI YOK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;CM1CON0=0 'C1 Komparatör iptal .......................BU İŞLEMCİDE KOMPARATÖR YOK !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;CM2CON0=0 'C2 Komparatör iptal........................BU İŞLEMCİDE KOMPARATÖR YOK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;WPUB=0  'PORTB pullup lar kapalı d  .....................BU İŞLEMCİDE wpu REGİSTERİDE YOK !!!!!!!!!!!!!!!!!!!!!!!!!!       

 
  
      

ete

#1
Tanımadığım bir işlemci. Ama data sheete bakarak verdiğin program üzerinde düzeltmeler yaptım.
Sigorta ayarlarına alakasız satırlar koymuşsun onları sildim.
ADCON0 ve ADCO1 registerleri önemli onları ayarladım. AN0-AN1 ve AN3 Analog olmak zorunda. Bu nedenle o pinleri giriş olarak ayarladım.
İşlemcide WPU ve ANSEL registerleri yok onları satır olarak kapattım.
Komparatör de yok.
Ancak gerçek işlemci ile deneyerek çalışıp çalışmadığına bakabilirsin.

Ete

blueboard

Ete hocam, öncelikle teşekkür ederim. Dosyayı derlemeye çalıştığımda sigorta ayarları ile ilgili hata veriyor. Ekran görüntüsünü ekliyorum. Sebebi ne olabilir?

ete

Hata mesajını okuyamadım. Hangi basic derleyici kullanıyorsun ve kullandığın bilgisayar 32 bit mi yoksa 64 bit mi dir.
Ete

blueboard

PBP 2.60 kullanıyorum. Bilgisayar 32 bit.
Hata mesajı olarak şunları yazıyor:
Error 16F72.ASM 93 : [225] undefined symbol 'boren off'
Error 16F72.ASM 101 : [225] undefined symbol 'cpd_on''
Error 16F72.ASM 109 : [225] undefined symbol 'cp all'
Error 16F72.ASM 117 : [225] undefined symbol 'pwrte_on'

ete

PBP klasöü içinde INC diye bir klasör olması gerekir. Onun içinde M16F72 veya yoksa M16F7X şeklinde bir INC dosyası olması gerekir. Onu notepad ile açıp içine bakarsan doğru sigorta ayarlarını görebilirsin.
Aşağıdakileri dene,

@ DEVICE PIC16F72
@ DEVICE PIC16F72, BOD_OFF
@ DEVICE PIC16F72, PROTECT_ON  'veya OFF
@ DEVICE PIC16F72, WDT_ON
@ DEVICE PIC16F72, PWRT_ON
@ DEVICE PIC16F72, XT_OSC


Ete

blueboard

#6
Ete Hocam, son uyarınıza göre PBP klasöü içinde INC  klasörüne girdim. Onun içinde  M16F7X adında INC dosyasını buldum. Oradaki açıklamaya ve sizin açıklamanıza göre değişiklikleri yaptım.
Şimdi hata uyarı sayısı 4'ten 2'ye düştü. Uyarılar şunlar:
Error 16F72.ASM 93 : [225] undefined symbol 'boren off'
Error 16F72.ASM 109 : [225] undefined symbol 'cp all'

INC dosyasından Boren için şunu okuyorum:   BORV_19         equ     3BFF4000h       ; XX X1XX XXXX XXXX
                                           veya                       BORV_25
Boren Off ile ilgili bir şekil yok    BORV_19 veya BORV_25 seçenekleri var.

cp_all için ise hiç bir şey belirtilmemiş. Ne yapmamı tavsiye edersiniz?
EXTRC_OSC_CLKOUT equ    3FF80007h       ; XX XXXX XXXX X111
EXTRC           equ     3FF80007h       ; XX XXXX XXXX X111
EXTRC_OSC_NOCLKOUT equ  3FF80006h       ; XX XXXX XXXX X110
EXTRCIO         equ     3FF80006h       ; XX XXXX XXXX X110
INTRC_OSC_CLKOUT equ    3FF80005h       ; XX XXXX XXXX X101
INTOSC          equ     3FF80005h       ; XX XXXX XXXX X101
INTRC_OSC_NOCLKOUT equ  3FF80004h       ; XX XXXX XXXX X100
INTOSCIO        equ     3FF80004h       ; XX XXXX XXXX X100
EC_OSC          equ     3FF80003h       ; XX XXXX XXXX X011
HS_OSC          equ     3FF80002h       ; XX XXXX XXXX X010
XT_OSC          equ     3FF80001h       ; XX XXXX XXXX X001
LP_OSC          equ     3FF80000h       ; XX XXXX XXXX X000
WDT_ON          equ     3FF70008h       ; XX XXXX XXXX 1XXX
WDT_OFF         equ     3FF70000h       ; XX XXXX XXXX 0XXX
PWRT_ON         equ     3FEF0000h       ; XX XXXX XXX0 XXXX
PWRT_OFF        equ     3FEF0010h       ; XX XXXX XXX1 XXXX
MCLR_ON         equ     3FDF0020h       ; XX XXXX XX1X XXXX
MCLR_OFF        equ     3FDF0000h       ; XX XXXX XX0X XXXX
PROTECT_ON      equ     3FBF0000h       ; XX XXXX X0XX XXXX
PROTECT_OFF     equ     3FBF0040h       ; XX XXXX X1XX XXXX
BOD_ON          equ     3CFF0300h       ; XX XX11 XXXX XXXX
BOD_NSLEEP      equ     3CFF0100h       ; XX XX01 XXXX XXXX
BOD_OFF         equ     3CFF0000h       ; XX XX00 XXXX XXXX
BORV_19         equ     3BFF4000h       ; XX X1XX XXXX XXXX
BORV_25         equ     3BFF0000h       ; XX X0XX XXXX XXXX
PLL_ON          equ     2FFF0000h       ; X0 XXXX XXXX XXXX
PLL_OFF         equ     2FFF1000h       ; X1 XXXX XXXX XXXX
DEBUG_ON        equ     1FFF0000h       ; 0X XXXX XXXX XXXX
DEBUG_OFF       equ     1FFF2000h       ; 1X XXXX XXXX XXXX

; *** DEVICE2 Fuses Definitions
VCAP_OFF equ     3FCF0030h       ; XX XXXX XX11 XXXX
VCAP_RA6 equ     3FCF0020h       ; XX XXXX XX10 XXXX
VCAP_RA5 equ     3FCF0010h       ; XX XXXX XX01 XXXX
VCAP_RA0 equ     3FCF0000h       ; XX XXXX XX00 XXXX

ete

Error 16F72.ASM 93 : [225] undefined symbol 'boren off'
Error 16F72.ASM 109 : [225] undefined symbol 'cp all'
Bu iki hatandan ilki Bore sigortasının iptal edilmesi ile ilgili. Sanırım bunun yerine BOD_OFF kullanacaksın
CP_ALL yerine de  PROTECT_ON  kullanacaksın.

Ete

Powered by EzPortal