16F684 OSCCON ve DEFINE OSC X

Başlatan Yasin, 08 Eylül 2019, 00:19:22

Yasin

Selamlar.

Bir projede bu mcu'yu kullanacağım. Dahili osilatörü 8MHz olarak kullanacağım. Bunun için OSCCON registerına %01111100 değerini verdim. Ayrıca programa DEFINE OSC 8 satırını eklememe gerek var mıdır?

alisumer

datasına bakmadım ama config reg ,osccon ve osctune registerlerde frekans seçme mod seçme gibi ayarlar olmalı data belgesine bakıp ayarlarını yapabilirsin,basic te yazacaksan .config için ayar 16f684.inc dosyasının en altında yer alır muhtemelen @ __config  _HS_OSC yerine int_osc şeklinde bir komuttur onu yazarsın DEFINE OSC 8 yazarsın ayarın olur
Hep meraktan

ete

define OSC 8 her zaman gereklidir. Derleyici bu şekilde dahili registerleri ayarlar ve programdaki zamanlama işlerini bu OSC değerine göre ayarlar.

Ete

Yasin

#3
@ete @alisumer

Ayarlarımı şu şekilde yaptım. Umarım bir problem yoktur.

@ __CONFIG _FCMEN_OFF & _IESO_OFF & _BOD_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT

DEFINE OSC 8
OSCCON = %01111001
OSCTUNE = 0

TRISA=%00011000
TRISC=%00000000

CMCON0 = 7
ANSEL = 0

alisumer

basicte osc registerlerini tek tek ayarlamana gerek yok @ __CONFIG _INTRC_OSC_NOCLKOUT ve DEFINE OSC 8 desen yeterli kendi yapıyor zaten ayarı ama komutlar arasında çakışma yoksa sıkıntı da yapmaz yazman
Hep meraktan

oguztkn

Merhaba,

Yeni konu açmamak için buraya yazıyorum konu gibi aslında ben de 18f45k22 ile uğraşıyorum.

Şimdi sigorta ayarlarını;
         _CONFIG1H, _FOSC_INTIO67_1H & _PLLCFG_ON_1H & _PRICLKEN_OFF_1H & _FCMEN_OFF_1H & _IESO_OFF_1H  
	__CONFIG    _CONFIG2L, _PWRTEN_OFF_2L & _BOREN_OFF_2L & _BORV_285_2L 
	__CONFIG    _CONFIG2H, _WDTEN_OFF_2H & _WDTPS_32_2H        
	__CONFIG    _CONFIG3H, _CCP2MX_PORTC1_3H & _PBADEN_OFF_3H & _CCP3MX_PORTE0_3H & _HFOFST_OFF_3H & _T3CMX_PORTC0_3H & _P2BMX_PORTC0_3H & _MCLRE_INTMCLR_3H
        __CONFIG    _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L
	__CONFIG    _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L       
	__CONFIG    _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H
	__CONFIG    _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
	__CONFIG    _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H 
	__CONFIG    _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L 
	__CONFIG    _CONFIG7H, _EBTRB_OFF_7H  
şeklinde yapıyorum.Ardından

OSCCON = %01110010 ile 16mhz dahili seçiyorum.
OSCCON2 = %10000000 ile pll aktif ediyorum
Bu hesaba göre 16*4 ten 64mhz hızla çalışması gerekmiyor mu ? Yoksa nerede hata yapıyorum acaba ?

ete

Kodun tamamı olmayınca insan yorum yapmakta zorlanıyor.
Aşağıdaki leri ekleyerek dene.
Define OSC 64
OSCCON =%01111010
OSCCON2=%10000000
OSCTUNE=%01000000
Ete

Powered by EzPortal