_delay problemi

Başlatan LukeSkywalker, 05 Eylül 2011, 22:06:27

f_machine

/* header file for the MICROCHIP PIC18 microcontrollers
  PIC18F2455
  PIC18F2550
  PIC18F4455
  PIC18F4550
  PIC18F2458
  PIC18F2553
  PIC18F4458
  PIC18F4553
 */

#ifndef	__PIC18F4550_H

#define	__PIC18F4550_H


18F4550.h 18f2550 içinde geçerliymiş.

LukeSkywalker

Hocam her türlü ayarı yaptım. HITECH configürasyon ayarlarını kabul etmiyor 18F2550 için. Her sürümünde bir dert. Bırakıyorum HI-Techi. bununla uğraşamam...

serdararikan

hitech bir versiyonunda çalışan kodun başka bir versiyonda çalışmadığını gördüm.fakat dediğiniz gibi konfigrasyon konusunda sıkıntı olduğunu görmedim.

//----------------------------Konfigrasyon ayarları------------------------------------------------------
#define _XTAL_FREQ	32000000L
#pragma config OSC = HS   //INTIO67 
#pragma config FCMEN = OFF /* Fail-Safe Clock Monitor disabled */ 
#pragma config IESO = ON /* Oscillator Switchover mode enabled */ 
#pragma config PWRT = ON /* PWRT enabled */ 
#pragma config BOREN = OFF /* Brown-out Reset disabled in hardware and software */ 
#pragma config BORV = 3 /* Minimum setting */ 
#pragma config WDT = OFF /* HW Disabled - SW Controlled */ 
#pragma config WDTPS = 32768 /* 1:32768 */ 
#pragma config MCLRE = OFF /* RE3 input pin enabled; MCLR disabled */ 
#pragma config LPT1OSC = OFF /* Timer1 configured for higher power operation */ 
#pragma config PBADEN = OFF /* PORTB<4:0> pins are configured as digital I/O on Reset */ 
#pragma config CCP2MX = PORTC /* CCP2 input/output is multiplexed with RC1 */ 
#pragma config STVREN = OFF /* Stack full/underflow will not cause Reset */ 
#pragma config LVP = OFF /* Low Voltage ICSP */ 
#pragma config XINST = OFF /* Instruction set extension and Indexed Addressing mode disabled 
/* turn off all code/eeprom protection */ 
#pragma config CP0 = ON, CP1 = ON, CP2 = ON, CP3 = ON, CPB = ON, CPD = ON 
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF, WRTB = OFF, WRTD = OFF, WRTC = OFF 
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF, EBTRB = OFF



ben bu şekilde yazıyorum 18f4520 için hiçbir sıkıntı çıkmıyor.

LukeSkywalker

Bu zannedersem 9.64'ten sonraki versiyonlarında #pragma ile yapılıypr ayarlar.

Şimdi hocam CPUDIV ile ben giriş frekansını 4MHZ'den 1MHZ'e  çekebilir miyim 4'e bölerek?

muhittin_kaplan

giriş frekansını 4 kullanıp CPUDIV ile gerekli bölmeyle yapabilirsin.

Tagli

Evet bu mümkün. C18 olsaydı ayarlar şu şekilde olmalıydı:
CPUDIV = OSC4_PLL6
FOSC = XT_XT

Bu durumda, 4 MHz kristal girişi 4'e bölünecek. 1 MHz çalışma frekansı olacak. Ama gerçek komut süresini bulmak için bu frekansı da 4'e bölmen gerekiyor. Yani bu durumda her komut 4 us sürede işlenecek.
Gökçe Tağlıoğlu

LukeSkywalker

Sabahtan beri Derleyicide frekans ayarları ile oynayıp dururken şunu farkettim ki  ISIS'te simülasyon yaparken işlemcinin frekansını değiştirmeyi unutuyormuşum. Yani PLL ile 48 MHZ'e çıkarınca da , 1MHZ'e düşürünce de  ISIS bunu algılamıyor. Saat kaynağı olarak direkt bizim girdiğimiz değeri algılıyor. Yani biz PLL ile 48MHZ'de yapsak, ISIS girilen frekansı saat frekansı kabul ediyor.Güleceksiniz ama hatamın sebebini bu. Takılınca takılıyor işte insan. Bir de şunu farkettim bu arada hi-Tech C 9.51 STD sürümündeki XINST ayarı ile 9.63 sürümündeki XINST ayarı ters çalışıyor. 9.51'de XINST 0 iken disable ediliyor. 9.63'de ise 1 iken disable ediliyor. Bunun sebebini de anlamadım.

LukeSkywalker

Kullandığım delay fonksiyonları hi-tech pic-c18 9.63'ün sample klasöründen aldım. Fakat DelayMs(x) gecikme yapmak istediğimde tam 2.5x  gecikme yapıyor. Sebebini çözemedim Bir bakar mısınız rica etsem sizde?

http://www.mediafire.com/?i352egk0ok37vc5